/* =====================================================================
   INGAME v2 — mapa em tela cheia + HUD por cima + barra inferior
   ===================================================================== */
:root { --dock-h: 124px; --hud-bg: rgba(14,18,26,.86); --hud-line: #2c3444; --frame: #2a2f39; --frame-2: #3a414e; --accent: #f5c518; }
#screen-game { background: #06070b; }
.stage { position: relative; flex: 1; min-height: 0; overflow: hidden; border-top: 3px solid var(--frame-2); }
.stage-canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; image-rendering: pixelated; cursor: pointer; }
.label-canvas { pointer-events: none; image-rendering: auto; cursor: default; }   /* nomes nítidos por cima do mapa */
.night-tint { position: absolute; inset: 0; pointer-events: none; background: rgba(20,32,90,.28); mix-blend-mode: multiply; opacity: 0; transition: opacity 2s; }
.night-tint.on { opacity: 1; }

/* aba AUTO pendurada no topo */
.hud-top-center { position: absolute; top: 0; left: 50%; transform: translateX(-50%); display: flex; gap: 6px; align-items: flex-start; z-index: 5; }
.auto-tab {
  min-width: 170px; height: 44px; padding: 0 22px 4px; cursor: pointer; font: 800 13px var(--font); letter-spacing: .5px; color: #dfe5f0;
  background: linear-gradient(180deg, #353c49, #22272f); border: 2px solid #4a5263; border-top: 0;
  clip-path: polygon(0 0, 100% 0, 88% 100%, 12% 100%); display: flex; align-items: center; justify-content: center; gap: 8px;
}
.auto-tab small { font-size: 9px; font-weight: 800; color: #8a93a6; }
.auto-tab.on { background: linear-gradient(180deg, #2d6b3f, #1b4027); border-color: #3ad35b; color: #fff; }
.auto-tab.on small { color: #9ff5b4; }
.run-tab { min-width: 140px; }
.run-tab.on { background: linear-gradient(180deg, #2b5c86, #1a3a57); border-color: #3cc7ff; }
.run-tab.on small { color: #a9e6ff; }
.auto-cfg { margin-top: 6px; width: 30px; height: 30px; border-radius: 8px; background: var(--hud-bg); border: 1px solid var(--hud-line); color: #cfd6e6; cursor: pointer; }
.auto-cfg:hover { border-color: var(--accent); }

/* topo esquerda */
.hud-tl { position: absolute; top: 10px; left: 10px; width: 250px; display: flex; flex-direction: column; gap: 6px; z-index: 4; }
.hud-trainer { display: flex; align-items: center; gap: 8px; background: var(--hud-bg); border: 1px solid var(--hud-line); border-radius: 10px; padding: 4px 10px 4px 4px; width: max-content; max-width: 100%; }
.hud-portrait { width: 38px; height: 38px; border-radius: 8px; background: #0c0f16; display: grid; place-items: center; overflow: hidden; }
.hud-tname { font-weight: 800; font-size: 13px; }
.hud-rank { font-size: 10px; font-weight: 800; color: var(--accent); text-transform: uppercase; letter-spacing: .5px; }
.hud-tinfo { min-width: 120px; }
.hud-tlv { display: inline-block; font-size: 10px; font-weight: 800; color: #1a1300; background: #ffcf4a; border-radius: 6px; padding: 0 5px; margin-left: 4px; vertical-align: 1px; }
.hud-texp { height: 4px; background: #ffffff1c; border-radius: 3px; margin-top: 3px; overflow: hidden; }
.hud-texp > div { height: 100%; width: 0; background: linear-gradient(90deg, #ffcf4a, #ff9b3d); transition: width .3s; }
.hud-pills { display: flex; gap: 5px; flex-wrap: wrap; }
.hud-pill { background: var(--hud-bg); border: 1px solid var(--hud-line); border-radius: 7px; padding: 3px 8px; font-size: 11px; font-weight: 700; color: #dfe5f0; }
.hud-pill.green { color: #7ff0a4; }
.hud-card { background: var(--hud-bg); border: 1px solid var(--hud-line); border-radius: 8px; padding: 8px 10px; font-size: 12px; }
.objective .obj-head { display: flex; justify-content: space-between; font-size: 10px; font-weight: 800; color: var(--accent); letter-spacing: .5px; }
.objective .obj-text { font-weight: 700; margin: 3px 0 6px; line-height: 1.3; }
.objective .obj-bar { height: 4px; background: #0b0e14; border-radius: 4px; overflow: hidden; }
.objective .obj-bar > div { height: 100%; background: linear-gradient(90deg, #22c55e, #7ff0a4); transition: width .3s; }
.objective .obj-rew { font-size: 10px; color: var(--muted); margin-top: 4px; }
.objective.flash { animation: objFlash 1s 2; }
@keyframes objFlash { 50% { border-color: var(--accent); box-shadow: 0 0 14px rgba(245,197,24,.5); } }
.status { padding: 0; overflow: hidden; }
.status-head { display: flex; justify-content: space-between; align-items: center; padding: 7px 10px; font-weight: 800; cursor: pointer; border-bottom: 1px solid var(--hud-line); }
.status.collapsed .status-body { display: none; }
.status.collapsed .status-head { border-bottom: 0; }
.status-caret { transition: transform .15s; }
.status.collapsed .status-caret { transform: rotate(-90deg); }
.status-body { padding: 7px 10px; display: flex; flex-direction: column; gap: 3px; }
.status-body .st-line { color: #cfe8ff; font-weight: 600; }
.status-body .kv2 { display: flex; justify-content: space-between; font-size: 11px; }
.status-body .kv2 span { color: var(--muted); }
.status-body .kv2 b { font-family: var(--mono); font-weight: 600; }
.status-body .enemy-bar { height: 5px; background: #0b0e14; border-radius: 4px; overflow: hidden; margin: 2px 0 3px; }
.status-body .enemy-bar > div { height: 100%; background: linear-gradient(90deg, #ff9500, #ffc94d); }
.status-body .loot-strip { margin-top: 4px; }
.status-body .btn { margin-top: 6px; }

/* topo direita */
.hud-tr { position: absolute; top: 10px; right: 10px; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; z-index: 4; }
.hud-money { display: flex; gap: 6px; }
.money-pill { display: flex; align-items: center; gap: 6px; background: var(--hud-bg); border: 1px solid var(--hud-line); border-radius: 999px; padding: 3px 12px 3px 5px; font: 800 14px var(--mono); }
.money-pill img { width: 22px; height: 22px; image-rendering: pixelated; }
.money-pill.gold { color: var(--accent); border-color: rgba(245,197,24,.4); }
.money-pill.elo { color: #c9a4ff; font-size: 12px; }
.hud-quick { display: grid; grid-template-columns: repeat(2, 48px); gap: 6px; }
.quick-btn { width: 48px; height: 44px; border-radius: 8px; background: linear-gradient(180deg, #1f2a36, #151c25); border: 1px solid var(--hud-line); cursor: pointer; display: grid; place-items: center; }
.quick-btn img { width: 30px; height: 30px; image-rendering: pixelated; }
.quick-btn:hover { border-color: var(--accent); }
.quick-btn.red { background: linear-gradient(180deg, #4a1c24, #2c1016); }
.hud-account { text-shadow: 0 1px 2px #000; }

/* baixo esquerda: log */
.hud-chat { position: absolute; left: 12px; bottom: 12px; width: 300px; z-index: 4; background: rgba(12,15,22,.9); border: 2px solid var(--accent); border-radius: 8px; overflow: hidden; }
.chat-head { display: flex; align-items: center; gap: 8px; padding: 6px 10px; cursor: pointer; font-size: 12px; }
.chat-ic { font-size: 14px; }
.chat-last { flex: 1; min-width: 0; font-size: 11px; color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chat-badge { font-style: normal; background: var(--red); color: #fff; border-radius: 999px; font-size: 10px; font-weight: 800; padding: 1px 6px; }
.hud-chat { width: 340px; }
.chat-body { display: none; border-top: 1px solid var(--hud-line); }
.hud-chat.open .chat-body { display: block; }
.hud-chat.open .chat-last { visibility: hidden; }
.chat-tabs { display: flex; gap: 4px; padding: 5px 6px 0; }
.chat-tab { flex: 1; padding: 4px; border-radius: 6px 6px 0 0; background: #151a24; border: 1px solid var(--hud-line); border-bottom: 0; color: #9aa3b8; font: 700 11px var(--font); cursor: pointer; }
.chat-tab.active { background: #1f2636; color: var(--accent); }
.chat-msgs, .hud-chat .combat-log { height: 190px; overflow-y: auto; padding: 5px 8px; font-size: 12px; background: #0f131b; }
.hud-chat .combat-log { display: flex; flex-direction: column; }
.hud-chat .combat-log.hidden, .chat-msgs.hidden, .chat-form.hidden { display: none !important; }
.chat-line { padding: 1px 0; line-height: 1.35; word-wrap: break-word; color: #dfe5f0; }
.chat-line b { color: #8be9fd; }
.chat-line.adm b { color: var(--accent); }
.chat-line.adm b::before { content: "[ADM] "; color: #ff7a7a; }
.chat-line.reply { color: #9ff5b4; font-style: italic; }
.chat-line.err { color: #ff9aa5; }
.chat-line.sys { color: var(--muted); }
.chat-time { color: #5d6780; font-size: 10px; margin-right: 5px; font-family: var(--mono); }
.chat-form { display: flex; gap: 5px; padding: 6px; background: #121722; }
.chat-form input { flex: 1; min-width: 0; padding: 6px 9px; font-size: 12px; border-radius: 6px; }
.chat-form button { padding: 0 12px; border-radius: 6px; background: var(--accent); color: #1a1400; border: 0; font: 800 11px var(--font); cursor: pointer; }

/* idioma */
.lang-pick { display: flex; gap: 12px; flex-wrap: wrap; }
.lang-pick .lang-opt { flex: 0 1 220px; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 14px 18px; border-radius: 10px; background: #1a2030; border: 1px solid var(--hud-line); color: #e8ebf3; cursor: pointer; font-size: 15px; }
.lang-pick .lang-opt small { color: var(--muted); }
.lang-opt.active { border-color: var(--accent) !important; box-shadow: 0 0 0 1px var(--accent) inset; }
.lang-switch { display: flex; gap: 6px; justify-content: center; margin-top: 10px; }
.lang-switch .lang-opt { padding: 4px 12px; border-radius: 6px; background: rgba(20,24,34,.8); border: 1px solid #3a4352; color: #cfd6e6; font-weight: 800; font-size: 12px; cursor: pointer; }

/* diamantes + Shiny Charm */
.money-pill.gems { color: #7fdcff; border-color: rgba(127,220,255,.4); }
.gems-plus { margin-left: 4px; width: 18px; height: 18px; border-radius: 50%; border: 0; background: #2ea8e0; color: #fff; font-weight: 900; font-size: 12px; line-height: 18px; padding: 0; cursor: pointer; }
.hud-pill.charm { color: #ff9af0; border-color: rgba(255,154,240,.45); }
.hud-pill.repel { color: #c9a4ff; border-color: rgba(201,164,255,.45); }
.price.gems { color: #7fdcff; }

/* natureza, perfeição e IVs */
.nature-line { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; font-size: 11px; color: var(--text-2); margin: 4px 0; }
.nature-line b { color: #e8ebf3; }
.perf { font-weight: 800; padding: 0 7px; border-radius: 999px; font-size: 10px; line-height: 17px; }
.perf.p1 { background: #3a2a2e; color: #ff9aa5; } .perf.p2 { background: #3a3522; color: #ffd166; } .perf.p3 { background: #20382a; color: #7ff0a4; } .perf.p4 { background: #3a2140; color: #ff9af0; }
.nat-up { color: #7ff0a4 !important; } .nat-down { color: #ff9aa5 !important; }
.iv-table { margin-top: 8px; display: grid; gap: 2px; }
.mon-card .iv-table { display: none; }
body.show-iv .mon-card .iv-table { display: grid; }
.iv-hint { margin-top: 8px; font-size: 11px; color: #8fa0c8; border: 1px dashed #3a4460; border-radius: 6px; padding: 3px 6px; text-align: center; }
.ev-line { margin-top: 8px; display: grid; gap: 4px; font-size: 12px; }
.ev-head { display: flex; justify-content: space-between; align-items: baseline; }
.ev-tot { font-family: var(--mono); color: #c4d0e8; }
.ev-tot.max, .ev-st.max { color: #4ade80; }
.ev-bar { height: 5px; border-radius: 3px; background: #2f3a52; overflow: hidden; }
.ev-bar i { display: block; height: 100%; background: linear-gradient(90deg, #4aa3ff, #4ade80); }
.ev-list { display: flex; flex-wrap: wrap; gap: 4px 10px; }
.ev-st { font-family: var(--mono); font-weight: 600; }
.ev-yield { margin-top: 6px; font-size: 11px; }
body.show-iv .iv-hint { display: none; }
.pin-hint { display: none; margin-top: 8px; font-size: 11px; color: #ffd36b; align-items: center; justify-content: space-between; gap: 6px; }
.tooltip.pinned { pointer-events: auto; border-color: #ffd36b; box-shadow: 0 0 0 1px #ffd36b55, var(--shadow); }
.tooltip.pinned .pin-hint { display: flex; }
.tooltip.pinned .iv-row:hover { background: #ffffff0d; border-radius: 4px; }
.pin-x { background: none; border: 1px solid #ffd36b66; color: #ffd36b; border-radius: 5px; cursor: pointer; font-size: 11px; padding: 0 5px; }
.team-card .team-top { cursor: help; }
.iv-title { font-size: 10px; font-weight: 800; color: var(--muted); letter-spacing: .5px; }
.iv-row { display: grid; grid-template-columns: 70px 1fr 22px; gap: 6px; align-items: center; font-size: 11px; }
.iv-row b { text-align: right; font-family: var(--mono); }
.iv-bar { height: 5px; background: #0b0e14; border-radius: 3px; overflow: hidden; }
.iv-bar > div { height: 100%; background: linear-gradient(90deg, #3cc7ff, #7ff0a4); }
.iv-bar > div.max { background: linear-gradient(90deg, #ff9af0, #ffd166); }
.tipo-aco, .bt-move.tipo-aco { background-color: #7d8d9c; } .tipo-sombrio, .bt-move.tipo-sombrio { background-color: #5a4636; }

/* baixo centro: golpes + nível */
.hud-bottom-center { position: absolute; left: 50%; bottom: 10px; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 6px; z-index: 3; pointer-events: none; }
.hud-bottom-center > * { pointer-events: auto; }
.move-bar { display: flex; gap: 5px; }
.move-bar .jutsu-cd { width: 40px; }
.move-bar .jutsu-cd .ic { width: 40px; height: 40px; background: rgba(12,15,22,.85); border-color: var(--hud-line); }
.move-bar .jutsu-cd small { color: #cfd6e6; text-shadow: 0 1px 2px #000; }
.lvl-bar { display: flex; align-items: center; gap: 10px; background: rgba(12,15,22,.88); border: 1px solid var(--hud-line); border-radius: 999px; padding: 4px 12px; width: 230px; }
.lvl-label { font-size: 11px; font-weight: 800; color: #cfd6e6; white-space: nowrap; }
.lvl-label b { color: var(--accent); font-size: 14px; }
.lvl-track { flex: 1; height: 8px; background: #0b0e14; }
.lvl-track > div { background: linear-gradient(90deg, #f5c518, #ffe27a); }
.lvl-track > span { display: none; }

/* janela dos painéis */
.win { position: absolute; inset: 0; z-index: 8; display: grid; place-items: center; background: rgba(4,6,10,.35); }
.win-box { width: min(980px, calc(100% - 40px)); max-height: calc(100% - 40px); display: flex; flex-direction: column; background: #121620; border: 2px solid var(--frame-2); border-radius: 12px; box-shadow: 0 20px 60px rgba(0,0,0,.6); overflow: hidden; }
.win-head { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; background: linear-gradient(180deg, #2a303b, #1c2029); border-bottom: 1px solid var(--hud-line); font-weight: 800; font-size: 15px; letter-spacing: .3px; }
.win-close { width: 30px; height: 30px; border-radius: 8px; background: #3a1d22; border: 1px solid #6b2a33; color: #ffb3bb; cursor: pointer; font-weight: 800; }
.win-close:hover { background: #5a2530; }
.win-box { height: calc(100% - 40px); max-width: 1180px; width: calc(100% - 40px); }
.win-main { flex: 1; min-height: 0; display: flex; }
.win-nav { width: 168px; flex-shrink: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 3px; padding: 10px 8px; background: #0e1118; border-right: 1px solid var(--hud-line); }
.win-nav .nav-btn { padding: 7px 10px; gap: 10px; font-size: 13px; color: #cfd6e6; border-radius: 8px; }
.win-nav .nav-btn img { width: 26px; height: 26px; image-rendering: pixelated; flex-shrink: 0; }
.win-nav .nav-btn:hover { background: #1b2130; }
.win-nav .nav-btn.active { background: linear-gradient(90deg, rgba(245,197,24,.18), rgba(245,197,24,.04)); border-color: rgba(245,197,24,.5); color: var(--accent); }
.win-body { flex: 1; min-width: 0; overflow: auto; padding: 16px 18px; }
#panel-auto .toggles { max-width: none; }
@media (max-width: 900px) { .win-nav { width: 56px; } .win-nav .nav-btn span { display: none; } }

/* menu de batalha por turno */
.battle-ui { width: min(760px, calc(100vw - 700px)); min-width: 440px; background: rgba(10,13,20,.92); border: 1px solid var(--hud-line); border-radius: 10px; padding: 8px 10px 0; box-shadow: 0 8px 24px rgba(0,0,0,.5); overflow: hidden; }
.bt-title { text-align: center; font-size: 10px; font-weight: 800; letter-spacing: 1px; color: var(--accent); margin-bottom: 7px; }
.bt-row { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-bottom: 9px; }
.bt-btn { flex: 1 1 140px; min-height: 42px; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 6px 12px; border-radius: 7px; cursor: pointer;
  background: linear-gradient(180deg, #1c2330, #141a24); border: 1px solid #333d50; color: #e6ebf5; font: 700 13px var(--font); }
.bt-btn img { width: 22px; height: 22px; image-rendering: pixelated; }
.bt-btn .bt-ic { font-size: 16px; color: var(--accent); }
.bt-btn:hover:not(:disabled) { border-color: var(--accent); background: linear-gradient(180deg, #243044, #182030); }
.bt-btn:disabled { opacity: .45; cursor: default; }
.bt-btn span { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.2; }
.bt-btn small { font-size: 10px; font-weight: 600; color: #b8c2d6; }
.bt-btn.bt-move { flex-direction: column; gap: 0; border: 1px solid rgba(255,255,255,.18); color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.6); background-image: linear-gradient(180deg, rgba(255,255,255,.12), rgba(0,0,0,.18)); }
.bt-move.tipo-normal { background-color: #8a8a6a; } .bt-move.tipo-fogo { background-color: #d8641e; } .bt-move.tipo-agua { background-color: #4a7ee0; } .bt-move.tipo-planta { background-color: #4e9e32; }
.bt-move.tipo-eletrico { background-color: #c9a414; } .bt-move.tipo-voador { background-color: #7f6ed0; } .bt-move.tipo-inseto { background-color: #87961a; } .bt-move.tipo-veneno { background-color: #8a3a8a; }
.bt-move.tipo-terra { background-color: #b8943c; } .bt-move.tipo-pedra { background-color: #98802e; } .bt-move.tipo-lutador { background-color: #a02a22; } .bt-move.tipo-psiquico { background-color: #d8466e; }
.bt-move.tipo-fantasma { background-color: #5e4c86; } .bt-move.tipo-gelo { background-color: #5eaeae; } .bt-move.tipo-dragao { background-color: #5e30d8; }
.bt-move small { color: rgba(255,255,255,.85); }
.bt-move:hover:not(:disabled) { filter: brightness(1.15); }
.bt-back { flex: 0 0 auto; min-width: 90px; }
.bt-run img { transform: scaleX(-1); }
.bt-empty { color: var(--muted); font-size: 12px; align-self: center; }
.battle-timer { height: 3px; margin: 0 -10px; background: rgba(255,255,255,.06); }
.battle-timer > div { height: 100%; background: var(--accent); transition: width .25s linear; }

/* loja por categorias */
.shop-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.shop-search { display: block; width: 100%; max-width: 460px; margin: 0 0 10px; padding: 8px 12px; border-radius: 10px; border: 1px solid rgba(255,255,255,.14); background: rgba(0,0,0,.28); color: #fff; font: inherit; font-size: 13px; outline: none; }
.shop-search:focus { border-color: rgba(245,197,24,.6); }
.shop-tab { display: flex; align-items: center; gap: 8px; padding: 7px 14px 7px 8px; border-radius: 999px; background: #1a2030; border: 1px solid var(--hud-line); color: #cfd6e6; font-weight: 700; cursor: pointer; font-size: 13px; }
.shop-tab img { width: 24px; height: 24px; image-rendering: pixelated; }
.shop-tab:hover { border-color: #56627a; }
.shop-tab.active { background: rgba(245,197,24,.14); border-color: var(--accent); color: var(--accent); }

/* golpes */
.move-chips { display: flex; flex-wrap: wrap; gap: 4px; margin: 4px 0; }
.move-chip { font-size: 10px; padding: 1px 7px; color: #fff; border: 0; }
.move-pick { display: flex; flex-direction: column; gap: 5px; max-height: 55vh; overflow: auto; }
.move-opt { display: flex; align-items: center; gap: 10px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; background: var(--bg-2); }
.move-opt.on { border-color: var(--accent); background: rgba(245,197,24,.08); }
.move-opt.off { opacity: .45; cursor: default; }
.move-opt input { width: 16px; height: 16px; accent-color: #f5c518; }
.cat-ic { width: 27px; height: 21px; image-rendering: pixelated; flex-shrink: 0; vertical-align: middle; }
/* tabela de golpes: [✓] Tipo | Nome | Poder | Precisão | Nível */
.move-head, .move-pick .move-opt { display: grid; grid-template-columns: 20px 82px minmax(0, 1fr) 56px 72px 48px; align-items: center; column-gap: 10px; }
.move-head { position: sticky; top: 0; z-index: 1; padding: 4px 12px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--muted, #9aa); background: var(--bg-1, #1a2030); }
.move-pick .num { text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; white-space: nowrap; }
.move-type { display: flex; align-items: center; gap: 4px; }
.move-name { min-width: 0; }
.win-body .panel-title { display: none; }
.win.small .win-box { width: min(420px, calc(100% - 40px)); }
#panel-map .map-wrap { height: min(62vh, 620px); }

/* barra inferior */
.dock {
  height: var(--dock-h); flex-shrink: 0; display: flex; align-items: stretch; gap: 10px; padding: 8px 12px;
  background: linear-gradient(180deg, #3b414d 0, #2a2f38 6px, #22262e 100%); border-top: 2px solid #535b6a; box-shadow: 0 -4px 12px rgba(0,0,0,.5);
}
.dock-map { position: relative; width: 150px; flex-shrink: 0; border: 2px solid #5b6474; border-radius: 6px; overflow: hidden; background: #06070b; cursor: pointer; }
.dock-map canvas { width: 100%; height: 100%; display: block; image-rendering: pixelated; }
.dock-map-tag { position: absolute; top: 3px; left: 50%; transform: translateX(-50%); font-size: 8px; font-weight: 800; background: rgba(0,0,0,.7); color: #ffe27a; padding: 1px 6px; border-radius: 4px; }
.dock-coords { position: absolute; bottom: 2px; left: 0; right: 0; text-align: center; font: 700 10px var(--mono); color: #fff; text-shadow: 0 1px 2px #000; }
.dock-map:hover { border-color: var(--accent); }
.nav-btn.dock-bag { width: 92px; flex-shrink: 0; flex-direction: column; justify-content: center; gap: 6px; background: linear-gradient(180deg, #1c222c, #14181f); border: 1px solid #3c4452; border-radius: 8px; color: #dfe5f0; font-size: 12px; font-weight: 800; padding: 6px; text-align: center; }
.dock-bag img { width: 40px; height: 40px; image-rendering: pixelated; }
.dock-grid { display: grid; grid-template-columns: repeat(7, 50px); grid-template-rows: repeat(2, 1fr); gap: 5px; flex-shrink: 0; padding-right: 10px; border-right: 2px solid #3a404c; }
.dock-btn, .nav-btn.dock-btn { width: 50px; padding: 0; justify-content: center; border-radius: 7px; background: linear-gradient(180deg, #1c2530, #131920); border: 1px solid #3a4352; cursor: pointer; display: flex; align-items: center; position: relative; }
.dock-btn img { width: 30px; height: 30px; image-rendering: pixelated; }
.dock-btn:hover, .nav-btn.dock-bag:hover { border-color: var(--accent); background: linear-gradient(180deg, #243040, #18202a); }
.nav-btn.dock-btn.active, .nav-btn.dock-bag.active { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent) inset; background: linear-gradient(180deg, #2f3a2a, #1c2419); }
.nav-btn.dock-btn em { position: absolute; top: -6px; right: -6px; margin: 0; z-index: 3; pointer-events: none; }
#dock-run.on { border-color: #3cc7ff; box-shadow: 0 0 8px rgba(60,199,255,.5); }
#dock-run.locked img { filter: grayscale(1) brightness(.5); }

.dock-team { flex: 1; min-width: 0; display: flex; gap: 8px; }
.dock-lead { flex: 1 1 340px; min-width: 240px; max-width: 520px; display: flex; gap: 12px; align-items: center; background: #14181f; border: 1px solid #3c4452; border-radius: 8px; padding: 6px 12px; cursor: pointer; }
.dock-lead:hover { border-color: var(--accent); }
.dock-lead .lead-sprite { width: 64px; flex-shrink: 0; text-align: center; }
.dock-lead .lead-lv { font: 800 11px var(--font); color: #dfe5f0; }
.dock-lead .lead-info { flex: 1; min-width: 0; }
.dock-lead .lead-name { font-weight: 800; font-size: 13px; margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dock-lead .lead-row { display: flex; align-items: center; gap: 6px; font: 700 9px var(--mono); color: var(--muted); margin-top: 5px; }
.dock-lead .lead-row .bar { flex: 1; height: 7px; background: #0b0e14; border: 0; }
.dock-lead .lead-row .bar > span { display: none; }
.dock-lead .lead-row .bar.xp > div { background: linear-gradient(90deg, #2e6cff, #5ab0ff); }
.dock-lead .lead-row .val { min-width: 58px; text-align: right; color: #cfd6e6; }
.dock-slots { display: flex; gap: 6px; }
.dock-slot { width: 88px; position: relative; background: #14181f; border: 1px solid #3c4452; border-radius: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; cursor: pointer; }
.dock-slot:hover { border-color: var(--accent); }
.dock-slot .slot-lv { position: absolute; top: 3px; right: 6px; font: 800 10px var(--font); color: #cfd6e6; }
.dock-slot .slot-hp { width: 70px; height: 5px; background: #0b0e14; border-radius: 3px; overflow: hidden; }
.dock-slot .slot-hp > div { height: 100%; background: #3ad35b; }
.dock-slot.fainted { opacity: .45; }
.dock-slot.locked { cursor: default; background: #1a1e25; }
.dock-slot.locked:hover { border-color: #3c4452; }
.lock-ic { width: 40px; height: 34px; position: relative; opacity: .55; }
.lock-ic::before { content: ""; position: absolute; left: 9px; top: 0; width: 22px; height: 20px; border: 5px solid #aab3c2; border-bottom: 0; border-radius: 12px 12px 0 0; box-sizing: border-box; }
.lock-ic::after { content: ""; position: absolute; left: 3px; bottom: 0; width: 34px; height: 20px; background: #aab3c2; border-radius: 4px; }

.toasts { bottom: calc(var(--dock-h) + 16px); }
@media (max-width: 1500px) {
  .dock-grid { grid-template-columns: repeat(7, 42px); }
  .dock-btn, .nav-btn.dock-btn { width: 42px; }
  .dock-slot { width: 64px; }
  .dock-slot .slot-hp { width: 50px; }
}
@media (max-width: 1200px) {
  .dock-slots .dock-slot.locked { display: none; }
  .hud-tl { width: 210px; }
  .nav-btn.dock-bag { display: none; }
}
.hud-pill.online { color: #8be9fd; }

/* menu do jogador, convites, troca e PvP */
.pmenu { position: fixed; z-index: 70; width: 220px; background: #121722; border: 1px solid var(--accent); border-radius: 10px; padding: 10px; box-shadow: 0 12px 30px rgba(0,0,0,.6); display: flex; flex-direction: column; gap: 6px; }
.pmenu-head { font-weight: 800; color: var(--accent); border-bottom: 1px solid var(--hud-line); padding-bottom: 6px; }
.pmenu-btn { padding: 8px 10px; border-radius: 7px; background: #1c2330; border: 1px solid #333d50; color: #e6ebf5; font: 700 13px var(--font); cursor: pointer; text-align: left; }
.pmenu-btn:hover { border-color: var(--accent); }
.pmenu-btn.ghost { background: transparent; text-align: center; color: var(--muted); }
.pmenu-sub { font-size: 12px; font-weight: 800; color: #ffb3bb; margin-top: 4px; }
.pmenu-n { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }
.pmenu-nb { padding: 6px 0; border-radius: 6px; background: #2a1c22; border: 1px solid #5a2a33; color: #ffd0d6; font: 800 12px var(--font); cursor: pointer; }
.pmenu-nb:hover:not(:disabled) { border-color: #ff7a8a; }
.pmenu-nb:disabled { opacity: .35; cursor: default; }
.invite-card { position: absolute; top: 60px; left: 50%; transform: translateX(-50%); z-index: 9; background: #121722; border: 2px solid var(--accent); border-radius: 10px; padding: 12px 16px; box-shadow: 0 12px 30px rgba(0,0,0,.6); font-size: 14px; max-width: 420px; }
.sw-overlay { position: absolute; inset: 0; z-index: 12; display: grid; place-items: center; background: rgba(4,6,10,.55); }
.sw-box { width: min(900px, calc(100% - 30px)); max-height: calc(100% - 30px); overflow: auto; background: #121620; border: 2px solid var(--frame-2); border-radius: 12px; box-shadow: 0 20px 60px rgba(0,0,0,.6); }
.sw-head { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; background: linear-gradient(180deg, #2a303b, #1c2029); border-bottom: 1px solid var(--hud-line); font-weight: 800; }
.sw-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 14px; border-top: 1px solid var(--hud-line); }
.tr-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 12px 14px; }
.tr-col { background: #0f131b; border: 1px solid var(--hud-line); border-radius: 10px; padding: 10px; min-height: 180px; }
.tr-col.ok { border-color: #3ad35b; box-shadow: 0 0 0 1px #3ad35b inset; }
.tr-title { display: flex; justify-content: space-between; align-items: center; font-weight: 800; margin-bottom: 8px; }
.tr-list { display: flex; flex-direction: column; gap: 5px; }
.tr-mon, .tr-item { display: flex; align-items: center; gap: 8px; background: #161c28; border-radius: 7px; padding: 4px 8px; }
.tr-mon > div { flex: 1; min-width: 0; }
.tr-item span { flex: 1; }
.tr-x { background: none; border: 0; color: #ff9aa5; cursor: pointer; font-weight: 800; }
.tr-gold { display: flex; align-items: center; gap: 5px; font-size: 12px; color: var(--gold); }
.tr-gold input { width: 110px; padding: 4px 8px; font-size: 12px; }
.tr-pick { padding: 0 14px 12px; }
.tr-pick-grid { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; max-height: 180px; overflow: auto; }
.tr-pick-mon { width: 56px; display: flex; flex-direction: column; align-items: center; padding: 4px 0; background: #161c28; border: 1px solid #2c3444; border-radius: 7px; color: #cfd6e6; cursor: pointer; }
.tr-pick-mon:hover:not(:disabled) { border-color: var(--accent); }
.tr-pick-mon small { font-size: 10px; }
.pvp-box { width: min(760px, calc(100% - 30px)); }
.pvp-timer { color: var(--accent); font-family: var(--mono); }
.pv-field { display: flex; flex-direction: column; gap: 8px; padding: 12px 18px; background: linear-gradient(180deg, #1d3a2a, #16261d); }
.pv-side { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.pv-side.me { flex-direction: row-reverse; }
.pv-info { flex: 0 1 300px; background: rgba(10,13,20,.85); border: 1px solid var(--hud-line); border-radius: 10px; padding: 8px 12px; }
.pv-name { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pv-hp { height: 8px; background: #0b0e14; border-radius: 4px; overflow: hidden; margin: 6px 0 3px; }
.pv-hp > div { height: 100%; transition: width .4s; }
.pv-balls { display: flex; gap: 4px; margin-top: 4px; }
.pv-ball { width: 11px; height: 11px; border-radius: 50%; background: linear-gradient(180deg, #e83e4d 50%, #f4f4f4 50%); border: 1px solid #222; }
.pv-ball.out { filter: grayscale(1) brightness(.5); }
.pv-log { height: 130px; overflow: auto; padding: 8px 14px; font-size: 12px; background: #0f131b; color: #cfd6e6; }
.pv-log .turn { color: var(--accent); font-weight: 800; margin-top: 4px; }
.pv-actions { flex-direction: column; align-items: stretch; }
.pv-actions .bt-row { margin-bottom: 0; }
.pv-actions { justify-content: flex-start; }
.pv-actions .bt-row { flex: 0 0 auto; }
.pv-actions .bt-btn { flex: 1 1 140px; height: 44px; min-height: 0; }

/* efeitos de batalha (PvP) */
.pv-side { position: relative; }
.pv-side .sprite-box { transition: transform .1s; }
.pv-lunge-up { animation: pvLungeUp .32s ease-out; }
.pv-lunge-down { animation: pvLungeDown .32s ease-out; }
@keyframes pvLungeUp { 40% { transform: translate(-26px, -22px) scale(1.08); } }
@keyframes pvLungeDown { 40% { transform: translate(26px, 22px) scale(1.08); } }
.pv-hit { animation: pvHit .5s steps(1); }
@keyframes pvHit { 0%, 20%, 40%, 60%, 80% { opacity: .15; transform: translateX(-5px); } 10%, 30%, 50%, 70%, 90% { opacity: 1; transform: translateX(5px); } 100% { opacity: 1; transform: none; } }
.pv-flash .pv-info { animation: pvFlash .45s; }
@keyframes pvFlash { 30% { box-shadow: 0 0 0 2px #ff4d5e, 0 0 18px rgba(255,77,94,.6); } }
.pv-dmg { position: absolute; right: 30px; top: 6px; font: 900 20px var(--mono); color: #ff5a6a; text-shadow: 0 2px 0 #000, 0 0 10px rgba(0,0,0,.8); pointer-events: none; animation: pvDmg 1.2s ease-out forwards; z-index: 3; }
.pv-dmg.on-me { right: auto; left: 30px; }
.pv-dmg.crit { color: #ffb020; font-size: 24px; }
@keyframes pvDmg { 0% { transform: translateY(10px) scale(.6); opacity: 0; } 15% { transform: translateY(-6px) scale(1.25); opacity: 1; } 30% { transform: translateY(-12px) scale(1); } 100% { transform: translateY(-46px); opacity: 0; } }
.pv-turn-banner { text-align: center; font-weight: 900; letter-spacing: 1px; color: #1a1400; background: linear-gradient(90deg, #f5c518, #ffe27a, #f5c518); border-radius: 8px; padding: 6px; animation: pvPulse 1.2s ease-in-out infinite; }
@keyframes pvPulse { 50% { filter: brightness(1.25); box-shadow: 0 0 16px rgba(245,197,24,.7); } }
.pv-myturn { animation: pvTurn 1s ease-out; }
@keyframes pvTurn { 20% { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent), 0 20px 60px rgba(0,0,0,.6); } }
/* batalha selvagem: sua vez (modo manual) */
.bt-title.your-turn { color: #1a1400; background: linear-gradient(90deg, #f5c518, #ffe27a, #f5c518); border-radius: 6px; padding: 3px; font-size: 11px; animation: pvPulse 1.2s ease-in-out infinite; }
.move-desc { color: #9ff5b4; margin-top: 1px; }
.chip.st-par { background: #c9a414; color: #1a1400; } .chip.st-slp { background: #6b7a90; color: #fff; } .chip.st-frz { background: #5eaeae; color: #06222a; }
.chip.st-brn { background: #d8641e; color: #fff; } .chip.st-psn { background: #8a3a8a; color: #fff; }

/* ===================== Enfermeira Joy (cura paga) ===================== */
.heal-wrap { display: grid; grid-template-columns: minmax(180px, 280px) 1fr; gap: 18px; align-items: start;
  background: radial-gradient(circle at 20% 10%, #ffe3ef22, transparent 60%), linear-gradient(160deg, #2a1c2a, #171522 70%);
  border: 1px solid #ff9cc433; border-radius: 16px; padding: 16px; }
.heal-art { position: relative; border-radius: 14px; overflow: hidden; aspect-ratio: 220 / 280;
  background: radial-gradient(circle at 50% 35%, #fff4f9, #ffd6e7 60%, #f7b6d0); box-shadow: inset 0 0 0 1px #ffffff55, 0 8px 24px #0006; }
.heal-art::before { content: ""; position: absolute; inset: auto 0 0 0; height: 22%; background: linear-gradient(#f08cb4, #d9669a); border-top: 3px solid #fff8; }
.heal-joy { position: absolute; inset: 0; width: 100%; height: 100%; animation: joy-bob 3.2s ease-in-out infinite; transform-origin: 50% 100%; }
.heal-chansey { position: absolute; right: 2%; bottom: 2%; width: 32%; aspect-ratio: 1; background: url("../assets/icons/113.png") 0 0 / 200% 100% no-repeat; image-rendering: pixelated; filter: drop-shadow(0 3px 2px #0005); animation: joy-bob 2.6s ease-in-out infinite reverse; }
@keyframes joy-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
.heal-side { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.heal-bubble { position: relative; background: #fff; color: #3a2432; border-radius: 14px; padding: 10px 14px; box-shadow: 0 6px 18px #0005; }
.heal-bubble::before { content: ""; position: absolute; left: -9px; top: 18px; border: 9px solid transparent; border-right-color: #fff; border-left: 0; }
.heal-bubble b { color: #e0508a; font-size: 12px; letter-spacing: .3px; }
.heal-bubble p { margin: 2px 0 0; font-size: 14px; }
.heal-machine { display: flex; gap: 10px; align-items: center; background: linear-gradient(#4a4f63, #2d3140); border-radius: 12px; padding: 8px 10px; border: 1px solid #ffffff22; }
.heal-screen { width: 38px; height: 26px; border-radius: 6px; background: #0e3b2d; box-shadow: inset 0 0 8px #0008; }
.heal-machine.run .heal-screen { background: #3cf0a0; box-shadow: 0 0 12px #3cf0a0aa; animation: heal-blink .35s steps(2) infinite; }
.heal-slots { display: flex; gap: 6px; flex-wrap: wrap; }
.heal-slot { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: #1b1e29; box-shadow: inset 0 0 0 2px #0006; }
.heal-slot img { width: 22px; height: 22px; image-rendering: pixelated; }
.heal-slot.ko img { filter: grayscale(1) brightness(.6); }
.heal-slot.hurt { box-shadow: inset 0 0 0 2px #e8c44355; }
.heal-machine.run .heal-slot { animation: heal-glow .5s ease-in-out calc(var(--i) * .15s) 2 alternate; }
@keyframes heal-glow { to { background: #ffe6f1; box-shadow: 0 0 12px #ff9cc4, inset 0 0 0 2px #fff; } }
@keyframes heal-blink { 50% { opacity: .55; } }
.heal-team { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; }
.heal-mon { display: flex; gap: 8px; align-items: center; background: #ffffff0a; border: 1px solid #ffffff14; border-radius: 10px; padding: 6px 8px; }
.heal-mon.ko { border-color: #e83e4d55; }
.heal-mon-info { flex: 1; min-width: 0; }
.heal-mon-info .bar { height: 6px; margin: 3px 0 1px; }
.heal-foot { display: flex; flex-direction: column; gap: 6px; }
.btn-heal { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; font-weight: 800; font-size: 14px;
  color: #fff; background: linear-gradient(#ff7aa8, #e0508a); border: 1px solid #ffb3cf; border-radius: 10px; box-shadow: 0 4px 14px #e0508a55; cursor: pointer; }
.btn-heal:hover:not(:disabled) { filter: brightness(1.08); transform: translateY(-1px); }
.btn-heal:disabled { opacity: .55; cursor: default; box-shadow: none; }
.heal-cross, .cross-ico { position: relative; display: inline-block; width: 16px; height: 16px; }
.heal-cross::before, .heal-cross::after, .cross-ico::before, .cross-ico::after { content: ""; position: absolute; background: #fff; border-radius: 2px; }
.heal-cross::before, .cross-ico::before { left: 5.5px; top: 0; width: 5px; height: 16px; }
.heal-cross::after, .cross-ico::after { top: 5.5px; left: 0; width: 16px; height: 5px; }
/* ícone de cruz nos botões (menu e barra de baixo) */
.cross-btn-ico { flex-shrink: 0; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; background: linear-gradient(#ff7aa8, #e0508a); box-shadow: 0 2px 6px #e0508a66, inset 0 0 0 2px #ffffff55; }
.win-nav .cross-btn-ico { width: 24px; height: 24px; border-radius: 7px; }
.win-nav .cross-btn-ico .cross-ico { transform: scale(.8); }
@media (max-width: 700px) { .heal-wrap { grid-template-columns: 1fr; } .heal-art { max-width: 220px; margin: 0 auto; } }

/* ===================== Opções ===================== */
.opt-group { margin-top: 18px; }
.opt-group h3 { font-size: 13px; text-transform: uppercase; letter-spacing: .6px; color: var(--text-2, #aab); margin: 0 0 8px; }
.opt-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #ffffff08; border: 1px solid #ffffff14; border-radius: 10px; padding: 10px 12px; cursor: pointer; }
.opt-row small { display: block; color: var(--text-2, #99a); font-size: 11px; margin-top: 2px; }
.switch { position: relative; width: 42px; height: 24px; flex-shrink: 0; }
.switch input { opacity: 0; width: 0; height: 0; }
/* o .switch antigo (style.css) desenha outra bolinha: nos botões com checkbox ela sai */
.switch:has(> input) { background: none; border: 0; border-radius: 12px; }
.switch:has(> input)::after { content: none; display: none; }
.switch span { position: absolute; inset: 0; border-radius: 12px; background: #3a3f52; transition: .2s; }
.switch span::after { content: ""; position: absolute; left: 3px; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; transition: .2s; }
.switch input:checked + span { background: #3ad35b; }
.switch input:checked + span::after { transform: translateX(18px); }

/* ===================== Visual (outfits) ===================== */
.walk-sprite { image-rendering: pixelated; background-repeat: no-repeat; background-position-x: 0; flex-shrink: 0; }
.outfit-preview .walk-sprite, .outfit-cell:hover .walk-sprite, .outfit-cell.sel .walk-sprite { animation: walk-cycle .6s steps(4) infinite; }
@keyframes walk-cycle { to { background-position-x: var(--w); } }
.outfit-preview { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; padding: 12px 14px; border-radius: 14px;
  background: radial-gradient(circle at 15% 50%, #ffffff12, transparent 60%), linear-gradient(160deg, #1f2536, #151925); border: 1px solid #ffffff18; }
.outfit-dirs { display: flex; gap: 4px; background: #0d1017; border-radius: 12px; padding: 6px 10px; box-shadow: inset 0 0 0 1px #ffffff10; }
.outfit-meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.outfit-meta b { font-size: 18px; }
.outfit-search { flex: 1; min-width: 160px; max-width: 260px; }
.outfit-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 6px; }
.outfit-cell { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 4px 2px 6px; border-radius: 10px; cursor: pointer;
  background: #ffffff08; border: 1px solid #ffffff14; color: inherit; font: inherit; }
.outfit-cell span { font-size: 10px; line-height: 1.15; color: var(--text-2, #aab); text-align: center; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 0 3px; }
.outfit-cell:hover { background: #ffffff12; border-color: #ffffff30; }
.outfit-cell.sel { border-color: #ffcf4a; box-shadow: 0 0 0 1px #ffcf4a66; background: #ffcf4a14; }
.outfit-cell.on { border-color: #3ad35b; }
.outfit-cell.on span::before { content: "✔ "; color: #3ad35b; }
.dock-outfit { display: block; width: 34px; height: 34px; image-rendering: pixelated; background-repeat: no-repeat; }
.win-nav .dock-outfit { width: 26px; height: 26px; }

/* PC: vagas + upgrade */
.pc-cap { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 10px 12px; margin-bottom: 10px; border-radius: 12px; background: #ffffff08; border: 1px solid #ffffff14; }
.pc-cap.full { border-color: #e83e4d77; background: #e83e4d12; }
.pc-cap-info { flex: 1; min-width: 200px; display: flex; flex-direction: column; gap: 4px; }
.pc-cap-info .bar { height: 7px; }
.pc-cap-info .bar > div { background: linear-gradient(90deg, #4aa8ff, #7c6bff); }
.pc-cap.full .pc-cap-info .bar > div { background: #e83e4d; }
.btn-gems { display: inline-flex; align-items: center; gap: 6px; font-weight: 800; color: #fff; background: linear-gradient(#3aa0ff, #2a6fd6); border: 1px solid #8cc8ff; border-radius: 10px; padding: 8px 14px; cursor: pointer; }
.btn-gems img { width: 20px; height: 20px; image-rendering: pixelated; }
.btn-gems:disabled { opacity: .5; cursor: default; }

/* ===================== Market ===================== */
.mk-filters { gap: 6px; margin: 8px 0; }
.mk-filters input { flex: 1; min-width: 140px; }
.mk-list { display: flex; flex-direction: column; gap: 6px; }
.mk-row { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; background: #ffffff08; border: 1px solid #ffffff14; }
.mk-row:hover { border-color: #ffffff30; }
.mk-row.done { opacity: .75; }
.mk-thumb { width: 44px; height: 44px; display: grid; place-items: center; flex-shrink: 0; border-radius: 8px; background: #0d1017; }
.mk-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.mk-title { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.mk-title .perf { font-size: 10px; margin-left: 4px; }
.mk-price { display: inline-flex; align-items: center; gap: 4px; font-weight: 800; font-variant-numeric: tabular-nums; min-width: 90px; justify-content: flex-end; }
.mk-price img { width: 20px; height: 20px; image-rendering: pixelated; }
.mk-price.gold { color: #ffd36b; }
.mk-price.gems { color: #8cc8ff; }
.mk-form { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 12px; margin-bottom: 10px; border-radius: 12px; background: linear-gradient(160deg, #1f2536, #151925); border: 1px solid #ffffff18; }
.mk-form-what { flex: 1 1 100%; }
.mk-field { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; }
.mk-field input { width: 110px; }
.mk-cur-ico { width: 16px; height: 16px; image-rendering: pixelated; vertical-align: -3px; margin-right: 4px; }
.mk-pick { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 6px; }
.mk-pick-cell { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 4px; border-radius: 10px; background: #ffffff08; border: 1px solid #ffffff14; color: inherit; font: inherit; cursor: pointer; }
.mk-pick-cell span { font-size: 11px; font-weight: 700; text-align: center; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mk-pick-cell small { font-size: 10px; color: var(--text-2, #99a); }
.mk-pick-cell.sel { border-color: #ffcf4a; background: #ffcf4a14; }
.mk-pick-cell:disabled { opacity: .45; cursor: default; }
.mk-h3 { font-size: 13px; text-transform: uppercase; letter-spacing: .5px; color: var(--text-2, #aab); margin: 12px 0 6px; }

/* equipe: arrastar para organizar */
.team-card { position: relative; cursor: grab; user-select: none; }
.team-card:active { cursor: grabbing; }
.team-card .drag-handle { position: absolute; top: 6px; right: 8px; font-size: 16px; line-height: 1; color: #8a93a8; cursor: grab; padding: 4px; touch-action: none; border-radius: 6px; }
.team-card .drag-handle:hover { color: #fff; background: #ffffff14; }
.team-card.drag-src { opacity: .35; }
.team-card.drop-before { box-shadow: inset 4px 0 0 #ffcf4a, 0 0 0 1px #ffcf4a55; }
.team-card.drop-after { box-shadow: inset -4px 0 0 #ffcf4a, 0 0 0 1px #ffcf4a55; }
@media (max-width: 700px) { .team-card.drop-before { box-shadow: inset 0 4px 0 #ffcf4a; } .team-card.drop-after { box-shadow: inset 0 -4px 0 #ffcf4a; } }
.drag-ghost { position: fixed; z-index: 9999; pointer-events: none; opacity: .92; transform: rotate(1.5deg) scale(1.02); box-shadow: 0 14px 34px #000a; }
.chat-line.vip b { color: #ffd36b; }
.chat-line.vip b::before { content: "👑 "; }

/* ===================== Premium ===================== */
.hud-vip { display: inline-block; font-size: 9px; font-weight: 900; letter-spacing: .4px; color: #2a1a00; background: linear-gradient(#ffe38a, #f5b82e); border-radius: 6px; padding: 0 5px; margin-left: 3px; vertical-align: 1px; box-shadow: 0 0 8px #ffcf4a66; }
.vip-card { position: relative; grid-column: 1 / -1; max-width: 420px; padding: 14px 16px; border-radius: 14px; background: linear-gradient(170deg, #2a2413, #16161f 55%); border: 1px solid #ffcf4a88; box-shadow: 0 0 0 1px #ffcf4a22, 0 10px 28px #0007; }
.vip-ribbon { position: absolute; top: 10px; right: 10px; font-size: 10px; font-weight: 900; color: #fff; background: #e0304a; border-radius: 6px; padding: 2px 7px; letter-spacing: .4px; }
.vip-top { display: flex; gap: 12px; align-items: center; margin-bottom: 8px; }
.vip-ico { width: 48px; height: 48px; display: grid; place-items: center; font-size: 28px; border-radius: 10px; background: linear-gradient(#3b3112, #221c0b); border: 1px solid #ffcf4a66; }
.vip-tag { display: inline-block; font-size: 10px; font-weight: 900; color: #ffcf4a; border: 1px solid #ffcf4a99; border-radius: 10px; padding: 0 8px; letter-spacing: .6px; }
.vip-title { font-size: 18px; font-weight: 900; margin-top: 2px; }
.vip-perks { list-style: none; margin: 6px 0; padding: 0; display: flex; flex-direction: column; gap: 3px; font-size: 13px; }
.vip-perks li::before { content: "✓ "; color: #3ad35b; font-weight: 900; }
.vip-days { color: #7fb4ff; font-size: 13px; margin: 6px 0; }
.vip-active { font-size: 13px; color: #9ff0b8; background: #1c3a2a; border: 1px solid #3ad35b55; border-radius: 10px; padding: 8px 10px; margin: 6px 0; }
.vip-buy { margin-top: 6px; }
/* Exp Share */
.xs-open { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 10px; }
.xs-open img, .xs-head img { width: 24px; height: 24px; image-rendering: pixelated; }
.xs-head { display: flex; gap: 10px; align-items: center; margin-bottom: 8px; }
.xs-head img { width: 36px; height: 36px; }
.xs-vip { font-size: 12px; color: #ffcf4a; background: #ffcf4a12; border: 1px solid #ffcf4a44; border-radius: 8px; padding: 6px 10px; margin-bottom: 8px; }
.xs-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 6px; }
.xs-mon { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 10px; background: #ffffff08; border: 1px solid #ffffff18; color: inherit; font: inherit; cursor: pointer; text-align: left; }
.xs-mon.on { border-color: #b98cff; background: #b98cff1c; }
.xs-mon:disabled { opacity: .5; cursor: default; }
.xs-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.xs-check { width: 20px; height: 20px; border-radius: 6px; border: 1px solid #ffffff40; display: grid; place-items: center; color: #fff; font-weight: 900; }
.xs-mon.on .xs-check { background: #9b6bff; border-color: #b98cff; }
/* Exp Share: ícone no slot da barra de Pokémon */
.dock-slot .slot-xs { position: absolute; left: 3px; top: 3px; width: 18px; height: 18px; image-rendering: pixelated; filter: drop-shadow(0 0 3px #b98cff) drop-shadow(0 1px 1px #000); pointer-events: none; }
.dock-slot:has(.slot-xs) { border-color: #9b6bff88; }

/* Market: categorias, filtros e cards */
.mk-cats, .mk-icats { margin: 8px 0 6px; }
.mk-icats .shop-tab { font-size: 12px; padding: 5px 10px; }
.mk-filters-box { border: 1px solid #ffffff1c; border-radius: 12px; background: #ffffff06; padding: 8px 12px; margin-bottom: 10px; }
.mk-filters-box summary { cursor: pointer; color: #7fb4ff; font-weight: 700; font-size: 13px; }
.mkf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px 10px; margin-top: 10px; }
.mkf { display: flex; flex-direction: column; gap: 3px; font-size: 11px; color: var(--text-2, #99a); min-width: 0; }
.mkf.wide { grid-column: span 2; }
.mkf input, .mkf select { width: 100%; min-width: 0; }
.mkf-actions { justify-content: flex-end; }
.mk-res-head { align-items: center; gap: 8px; margin: 4px 0 8px; }
.mkc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.mkc { display: flex; flex-direction: column; gap: 3px; padding: 10px; border-radius: 12px; background: linear-gradient(170deg, #1d2231, #151822); border: 1px solid #ffffff18; min-width: 0; }
.mkc:hover { border-color: #ffffff38; }
.mkc.shiny { border-color: #ff9af055; }
.mkc-art { height: 48px; display: flex; align-items: center; }
.mkc-art .icon-item, .mkc-art img { width: 40px; height: 40px; }
.mkc-name { font-weight: 900; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mkc-name.q4 { color: #ff8ce6; } .mkc-name.q3 { color: #c79bff; } .mkc-name.q2 { color: #7fb4ff; } .mkc-name.q1 { color: #d9dde8; }
.mkc-sub { font-size: 11px; color: var(--text-2, #99a); }
.mkc-stars { letter-spacing: 1px; } .mkc-stars.q4 { color: #ffb020; } .mkc-stars.q3 { color: #3ad35b; } .mkc-stars.q2 { color: #3ad35b; } .mkc-stars.q1 { color: #8a93a8; }
.mkc-price { display: flex; align-items: center; gap: 5px; font-weight: 900; font-size: 17px; margin-top: 2px; }
.mkc-price img { width: 18px; height: 18px; image-rendering: pixelated; }
.mkc-price.gold { color: #ffd36b; } .mkc-price.gems { color: #8cc8ff; }
.mkc-seller { font-size: 10px; color: var(--text-2, #8890a2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mkc-btns { display: flex; gap: 6px; margin-top: 4px; }
.mkc-btns .btn { flex: 1; }
.mkc-buy { background: linear-gradient(#2fa45a, #1f7a41); border-color: #57d98a; color: #fff; font-weight: 800; }
.mkc-buy:disabled { opacity: .45; }
@media (max-width: 600px) { .mkf.wide { grid-column: span 1; } }

/* ===================== Automação (Batalha / Captura / Suporte) ===================== */
.rar-chip { display: inline-flex; align-items: center; gap: 4px; padding: 1px 8px; border-radius: 999px; font-size: 11px; font-weight: 800; color: var(--rc); background: color-mix(in srgb, var(--rc) 14%, transparent); border: 1px solid color-mix(in srgb, var(--rc) 45%, transparent); white-space: nowrap; }
.rar-chip::before { content: "★"; font-size: 10px; }
.dex-cell.rar.seen, .dex-cell.rar.caught { box-shadow: inset 0 -3px 0 var(--rc); }
.ac-wrap { display: flex; flex-direction: column; gap: 10px; width: 100%; max-width: none; margin: 0; }
.ac-tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.ac-tab { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 9px 8px; border-radius: 10px; background: #1a2030; border: 1px solid #2c3446; color: #cfd6e6; font-weight: 700; cursor: pointer; font-size: 13px; }
.ac-tab i { font-style: normal; opacity: .9; }
.ac-tab:hover { border-color: #56627a; }
.ac-tab.active { background: rgba(245,197,24,.12); border-color: #f5c518; color: #f5c518; }
.ac-body { display: flex; flex-direction: column; gap: 10px; }
.ac-card { background: #151a26; border: 1px solid #2a3244; border-radius: 12px; padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.ac-title { display: flex; align-items: center; gap: 8px; font-weight: 800; font-size: 13.5px; flex-wrap: wrap; }
.ac-title small { font-weight: 500; }
.ac-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 28px; }
.ac-row.sub { padding-left: 10px; border-left: 2px solid #2a3244; }
.ac-label { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.ac-right { display: flex; align-items: center; gap: 8px; }
.ac-help { display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; border: 1px solid #56627a; color: #9aa4b8; font-size: 10px; font-weight: 800; cursor: help; flex-shrink: 0; }
.ac-prem { font-size: 10px; font-weight: 800; padding: 1px 6px; border-radius: 5px; background: #f5c518; color: #1a1400; letter-spacing: .3px; }
.ac-sub { font-size: 11.5px; color: #8f98ab; }
.ac-note { font-size: 12px; color: #aab3c5; background: #ffffff08; border-radius: 8px; padding: 8px 10px; }
.ac-note.gold { color: #f5c518; }
.ac-warn { font-size: 11.5px; color: #ffb347; }
.ac-line { display: flex; gap: 8px; align-items: center; }
.ac-line .ac-select { flex: 1; }
.ac-select { background: #0f131c; color: #e8ebf3; border: 1px solid #2f384b; border-radius: 8px; padding: 7px 9px; font: inherit; font-size: 13px; min-width: 0; }
.ac-num { width: 64px; background: #0f131c; color: #e8ebf3; border: 1px solid #2f384b; border-radius: 8px; padding: 7px 8px; font: inherit; font-size: 13px; text-align: center; }
.ac-num::placeholder { color: #7c869a; }
.ac-ico { width: 20px; height: 20px; image-rendering: pixelated; }
.ac-ball { display: inline-flex; align-items: center; gap: 4px; font-weight: 700; }
.ac-ball.no { color: #ff7b8a; }
.ac-rules { display: flex; flex-direction: column; border: 1px solid #2a3244; border-radius: 10px; overflow: hidden; }
.ac-rule { display: flex; align-items: center; gap: 8px; padding: 9px 10px; border-bottom: 1px solid #232a3a; background: #121722; }
.ac-rule.drag { opacity: .45; }
.ac-rule.over { box-shadow: inset 0 2px 0 #f5c518; }
.ac-grip { cursor: grab; color: #6c7489; font-size: 16px; user-select: none; }
.ac-n { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: #232a3a; font-size: 11px; font-weight: 800; color: #aab3c5; flex-shrink: 0; }
.ac-rule-main { flex: 1; min-width: 0; font-size: 13px; }
.ac-rule-main > div { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.ac-rule-main small { color: #7c869a; font-size: 11px; }
.ac-ibtn { background: none; border: 0; color: #aab3c5; cursor: pointer; font-size: 15px; padding: 4px; border-radius: 6px; }
.ac-ibtn:hover { background: #ffffff10; color: #fff; }
.ac-ibtn.red { color: #ff6b7d; }
.ac-add { background: none; border: 0; color: #aab3c5; padding: 10px; cursor: pointer; font-weight: 700; }
.ac-add:hover { color: #f5c518; background: #ffffff06; }
.ac-ballhp { display: flex; flex-direction: column; gap: 4px; padding-top: 6px; border-top: 1px dashed #232a3a; }
.ac-ballhp.off { opacity: .6; }
.ac-ballhp-head { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.ac-slider-row { display: flex; align-items: center; gap: 10px; }
.ac-pct { min-width: 40px; text-align: right; color: #4ade80; font-size: 13px; }
.ac-range { flex: 1; -webkit-appearance: none; appearance: none; height: 6px; border-radius: 3px; background: linear-gradient(90deg, #3ad35b var(--v), #2b3243 var(--v)); outline: none; cursor: pointer; }
.ac-range::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%; background: #4ade80; border: 3px solid #173d24; }
.ac-range::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; background: #4ade80; border: 3px solid #173d24; }
.ac-chances { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 11px; font-weight: 700; }
.ac-chances i { color: #7c869a; font-weight: 500; }
.ac-table-box summary { cursor: pointer; font-weight: 700; font-size: 13px; }
.ac-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ac-mini-title { font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: #8f98ab; margin-bottom: 4px; font-weight: 800; }
.ac-kv { display: flex; justify-content: space-between; align-items: center; gap: 6px; font-size: 12px; padding: 2px 0; }
.ac-xs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }   /* 3 por linha */
@media (max-width: 560px) { .ac-xs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ac-xs-mon { display: flex; align-items: center; gap: 6px; padding: 6px 8px; border-radius: 9px; background: #0f131c; border: 1px solid #2a3244; color: #e8ebf3; cursor: pointer; text-align: left; }
.ac-xs-mon span:not(.mon-icon) { display: flex; flex-direction: column; min-width: 0; flex: 1; font-size: 12px; }
.ac-xs-mon .mon-icon { flex: 0 0 auto; }
.ac-xs-mon small { color: #7c869a; }
.ac-xs-mon.on { border-color: #b46cff; background: rgba(180,108,255,.12); }
.ac-xs-mon:disabled { opacity: .5; cursor: default; }
.ac-check { font-style: normal; color: #c89bff; font-weight: 900; }
.ac-foot { position: sticky; bottom: 0; display: flex; flex-direction: column; gap: 6px; padding: 10px 0 2px; background: linear-gradient(transparent, #10141d 30%); }
.ac-status { font-size: 12px; color: #8f98ab; }
.ac-status .green { color: #4ade80; }
.ac-start { width: 100%; padding: 11px; border-radius: 10px; border: 1px solid #2f9a52; background: #1f5f36; color: #eafff0; font-weight: 900; letter-spacing: .6px; cursor: pointer; }
.ac-start:hover { background: #267241; }
.ac-start.stop { background: #5f1f2a; border-color: #9a2f44; color: #ffeaee; }
.ac-editor { display: flex; flex-direction: column; gap: 10px; min-width: min(460px, 86vw); }
.ac-field { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: #8f98ab; }
.ac-field .ac-select, .ac-field .ac-num { color: #e8ebf3; }
.ac-ctable { overflow-x: auto; }
.ac-ctable table { width: 100%; border-collapse: collapse; font-size: 12px; }
.ac-ctable th, .ac-ctable td { padding: 5px 6px; text-align: center; border-bottom: 1px solid #232a3a; white-space: nowrap; }
.ac-ctable th { color: #8f98ab; font-weight: 700; }
.ac-ctable td:first-child, .ac-ctable th:first-child { text-align: left; }
.ac-ctable .on { background: rgba(74,222,128,.12); color: #4ade80; font-weight: 800; }
@media (max-width: 520px) { .ac-grid2 { grid-template-columns: 1fr; } }
/* nome pequeno embaixo de cada ícone da barra de baixo */
.dock-btn, .nav-btn.dock-btn { flex-direction: column; gap: 0; overflow: visible; }   /* o selo de número (PC) sai pelo canto sem ser cortado */
.dock-btn img { width: 26px; height: 26px; }
.dock-btn .dock-outfit, .dock-btn .cross-btn-ico { transform: scale(.85); }
.dock-lbl { display: block; font-size: 9px; font-weight: 700; line-height: 1; color: #cfd6e6; white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; padding: 0 2px; margin-top: 1px; }

/* ===================== HP da batalha (painéis do HeartGold/SoulSilver, 2x) ===================== */
.bt-hud { display: flex; gap: 18px; align-items: flex-end; justify-content: center; pointer-events: none; }
.bt-hud.hidden { display: none; }
.hpp { position: relative; image-rendering: pixelated; background: no-repeat 0 0 / 100% 100%; filter: drop-shadow(0 3px 0 rgba(0,0,0,.35)); }
.hpp.foe { width: 244px; height: 74px; background-image: url("../assets/gba/hp-foe.png"); }
.hpp.me { width: 256px; height: 94px; background-image: url("../assets/gba/hp-me.png"); }
.hpp-name { position: absolute; top: 14px; font: 700 19px "Nunito", var(--font); color: #484848; text-shadow: 1px 1px 0 #c8c8c8; white-space: nowrap; max-width: 130px; overflow: hidden; text-overflow: ellipsis; line-height: 1; }
.hpp-lv { position: absolute; top: 19px; font: 800 17px "Inter", sans-serif; color: #484848; line-height: 1; }
.hpp.foe .hpp-name { left: 12px; } .hpp.foe .hpp-lv { left: 162px; top: 15px; }
.hpp.me .hpp-name { left: 40px; top: 18px; } .hpp.me .hpp-lv { left: 208px; }
.hpp-hp { position: absolute; height: 6px; width: 96px; }   /* o sulco das imagens tem 3 px de altura (6 px em 2x) */
.hpp.foe .hpp-hp { left: 100px; top: 48px; } .hpp.me .hpp-hp { left: 144px; top: 50px; }   /* encaixa no sulco branco das imagens (hp-foe.png x 50-97, hp-me.png x 72-119, em 2x) */
.hpp-hp i { display: block; height: 100%; width: 100%; background: #18c320; box-shadow: inset 0 -2px 0 #009200; transition: width .35s; }
.hpp-hp i.mid { background: #f8c800; box-shadow: inset 0 -2px 0 #c89000; }
.hpp-hp i.low { background: #f83818; box-shadow: inset 0 -2px 0 #a81000; }
.hpp-num { position: absolute; left: 122px; width: 122px; top: 62px; height: 16px; text-align: center; font: 800 15px "Inter", sans-serif; line-height: 16px; color: #484848; font-variant-numeric: tabular-nums; }
.hpp-exp { position: absolute; left: 44px; top: 86px; width: 198px; height: 4px; }
.hpp-exp i { display: block; height: 100%; width: 0; background: #4992fb; box-shadow: inset 0 -2px 0 #3061db; transition: width .35s; }
/* emojis do menu do treinador (1º quadro do balão) */
.emote-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 4px 0 6px; }
.emote-btn { width: 100%; aspect-ratio: 1; height: auto; padding: 0; box-sizing: border-box; border-radius: 7px; background: #f8f8f8; border: 2px solid #484860; cursor: pointer; display: grid; place-items: center; }
.emote-btn:hover { background: #a8e8f8; border-color: #f87030; }
.emote-btn i { width: 32px; height: 32px; background-repeat: no-repeat; background-size: auto 32px; background-position: 0 0; image-rendering: pixelated; }
/* card da equipe: nome numa linha só; Exp Share como ícone no canto */
.team-card .team-name { flex-wrap: nowrap; min-width: 0; overflow: hidden; white-space: nowrap; }
.team-card .team-name b { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.team-card .tc-xs { position: absolute; left: 6px; top: 4px; width: 24px; height: 24px; image-rendering: pixelated; pointer-events: auto; }

/* ===================== PvP: campo estilo DS (sprites Black 2/White 2 + painéis HGSS) ===================== */
.pv-field { position: relative; height: 340px; padding: 0; display: block; overflow: hidden;
  background: linear-gradient(180deg, #a8d8f8 0%, #d8f0f8 38%, #b8e098 38.5%, #88c870 100%); }
.pv-side { position: absolute; inset: 0; display: block; pointer-events: none; }
.pv-side > * { pointer-events: auto; }
.pv-info.hpp { position: absolute; margin: 0; padding: 0; background-color: transparent; border: 0; border-radius: 0; }
.pv-side.foe .pv-info { left: 0; top: 18px; }
.pv-side.me .pv-info { right: 0; bottom: 34px; }
.pv-mon { position: absolute; width: 192px; height: 192px; }
.pv-mon img { position: relative; width: 192px; height: 192px; image-rendering: pixelated; z-index: 1; }
.pv-mon.shiny img { filter: drop-shadow(0 0 6px rgba(255, 240, 160, .55)); }   /* shiny: sprite própria (cores oficiais) + leve brilho */
.pv-plat { position: absolute; left: 6px; right: 6px; bottom: 14px; height: 42px; border-radius: 50%; background: radial-gradient(ellipse at center, #d8e8a8 0 55%, #a8c878 56% 70%, transparent 71%); }
.pv-side.foe .pv-mon { right: 40px; top: 4px; }
.pv-side.me .pv-mon { left: 46px; bottom: -22px; }
.pv-side.me .pv-plat { bottom: 22px; height: 50px; }
.pv-side.me .hpp-exp { display: none; }
#battle-scene .pv-side.me .hpp-exp { display: block; }   /* tela de batalha contra selvagem: o seu Pokémon mostra a experiência (no PvP continua escondida) */
.pv-st { position: absolute; left: 14px; top: 44px; font-size: 10px; padding: 0 5px; }
.pv-side.me .pv-st { left: 44px; top: 50px; }
.pv-balls { position: absolute; display: flex; align-items: center; gap: 3px; margin: 0; white-space: nowrap; }
.pv-side.foe .pv-balls { left: 10px; top: 80px; }
.pv-side.me .pv-balls { right: 14px; top: -20px; }
.pv-owner { font: 700 12px var(--font); color: #203040; text-shadow: 0 1px 0 #fff; margin-right: 4px; }
.pv-ball { width: 14px; height: 14px; border: 0; border-radius: 0; background: url("../assets/gba/ball.png") no-repeat 0 0 / 14px; image-rendering: pixelated; }
.pv-ball.out { filter: grayscale(1) brightness(.6); opacity: .7; }
.pv-dmg { top: 20px; right: 90px; }
.pv-dmg.on-me { left: 90px; right: auto; top: auto; bottom: 120px; }
.pvp-box { max-height: calc(100% - 16px); display: flex; flex-direction: column; }
.pvp-box .pv-field { height: 300px; flex-shrink: 0; }
.pvp-box .pv-log { height: auto; min-height: 54px; max-height: 96px; flex: 0 1 96px; }
.pvp-box .pv-mon, .pvp-box .pv-mon img { width: 176px; height: 176px; }
.pvp-box .pv-side.me .pv-mon { bottom: -26px; }
.pvp-box .pv-log { flex: 1 1 96px; max-height: 160px; }
.pvp-box .pv-actions { flex: 0 0 auto; flex-wrap: nowrap; }
.pvp-box .pv-actions .bt-row { height: auto; min-height: 0; flex: 0 0 auto; }
.cur-ic { width: 16px; height: 16px; image-rendering: pixelated; vertical-align: -3px; margin-right: 4px; }
.money-pill.gold img { image-rendering: pixelated; }
/* canto direito do HUD: só as moedas (patente, atalhos e conta saíram por enquanto) */
.hud-tr .money-pill.elo, .hud-tr .hud-quick, .hud-tr .hud-account { display: none !important; }
/* dia/noite e fps ao lado do perfil, sem caixa */
.hud-toprow { display: flex; align-items: center; gap: 10px; width: max-content; }
.hud-clockbox { display: flex; flex-direction: column; gap: 1px; font: 800 12px var(--font); color: #fff; text-shadow: 0 1px 2px #000, 0 0 4px rgba(0,0,0,.8); white-space: nowrap; }
.hud-clockbox #hud-fps { font-size: 10px; font-weight: 700; color: #b8f0c8; opacity: .85; }
.theme-gba .hud-clockbox { font-family: "Nunito", var(--font); font-size: 14px; text-shadow: 2px 2px 0 #484860; }
.theme-gba .hud-clockbox #hud-fps { font-family: "Inter", sans-serif; font-size: 10px; text-shadow: 1px 1px 0 #484860; }
/* objetivo recolhível (como as estatísticas) */
.objective .obj-head { cursor: pointer; user-select: none; }
.obj-caret { display: inline-block; margin-left: 6px; transition: transform .15s; font-size: 11px; }
.objective.collapsed .obj-caret { transform: rotate(-90deg); }
.objective.collapsed .obj-text, .objective.collapsed .obj-bar, .objective.collapsed .obj-rew { display: none; }
/* jogadores online (telas de login e de personagens) */
.online-pill { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; color: #7ff0a4; background: rgba(74,222,128,.12); border: 1px solid rgba(74,222,128,.4); margin: 6px auto 0; width: max-content; }
.online-pill.hidden { display: none; }
.row .online-pill { margin: 0 8px 0 0; }
/* ícones novos dos menus (assets/menu/*.png, 96px reduzidos) */
.menu-ic { image-rendering: auto !important; object-fit: contain; }
.dock-btn img.menu-ic { width: 30px; height: 30px; }
.win-nav .nav-btn img.menu-ic { width: 28px; height: 28px; }
/* barra de baixo ~10% maior: botões do menu e ícones maiores */
:root { --dock-h: 136px; }
.dock-grid { grid-template-columns: repeat(7, 55px); gap: 6px; }
.dock-btn, .nav-btn.dock-btn { width: 55px; }
.dock-btn img, .dock-btn img.menu-ic { width: 33px; height: 33px; }
.dock-lbl { font-size: 10px; }
.dock-map { width: 162px; }
@media (max-width: 1500px) {
  .dock-grid { grid-template-columns: repeat(7, 47px); gap: 5px; }
  .dock-btn, .nav-btn.dock-btn { width: 47px; }
  .dock-btn img, .dock-btn img.menu-ic { width: 29px; height: 29px; }
}
/* barra de Exp nos slots da equipe */
.dock-slot .slot-xp { width: 70px; height: 3px; background: #0b0e14; border-radius: 2px; overflow: hidden; }
.dock-slot .slot-xp > div { height: 100%; width: 0; background: #4a9eff; }
.dock-bag img.menu-ic { width: 46px; height: 46px; }
/* perfil de outro jogador */
.prof-team { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 6px; }
.prof-mon { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 8px 6px; border-radius: 8px; background: var(--bg-2); border: 1px solid var(--line); font-size: 12px; text-align: center; }
.prof-mon small { color: var(--text-2); font-weight: 700; }
.prof-mon.shiny { border-color: #ff9af0; }
.theme-gba .prof-mon { background: var(--gba-blue); border: 2px solid var(--gba-line); color: #fff; box-shadow: inset 0 0 0 1px var(--gba-blue-2), inset 0 -3px 0 var(--gba-blue-3); }
.theme-gba .prof-mon b { font-family: var(--gba-font); font-size: 14px; text-shadow: 1px 1px 0 var(--gba-line); }
.theme-gba .prof-mon small { color: #fff; font-family: var(--gba-num); }
/* tooltip do Pokémon: atributos à esquerda, IVs à direita (IVs sempre visíveis; Ctrl trava) */
.tooltip:has(.mon-card) { max-width: 400px; }
.mc-cols { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 10px; margin-top: 8px; align-items: start; }
.mc-stats { grid-template-columns: 1fr; margin: 0; gap: 3px; }
.mc-stats .mc-shiny { color: #ff9af0; }
.mon-card .iv-table, body.show-iv .mon-card .iv-table { display: grid; margin-top: 0; gap: 3px; }
.mon-card .iv-title { font-size: 10px; text-transform: uppercase; letter-spacing: .5px; color: var(--text-2); margin-bottom: 1px; }
.mon-card .iv-row { grid-template-columns: 30px 1fr 20px; gap: 6px; font-size: 12px; }
.mon-card .iv-bar { height: 6px; }
.mon-card .iv-hint, body.show-iv .mon-card .iv-hint { display: block; margin-top: 8px; padding: 2px 6px; font-size: 10px; }
.tooltip.pinned .mon-card .iv-hint { display: none; }
/* HP da batalha: os dois painéis iguais (seu à esquerda, selvagem à direita) */
.hpp.hpp-big { width: 256px; height: 94px; background-image: url("../assets/gba/hp-me.png"); }
.hpp.hpp-big .hpp-name { left: 40px; top: 18px; }
.hpp.hpp-big .hpp-lv { left: 208px; top: 19px; }
.hpp.hpp-big .hpp-hp { left: 144px; top: 50px; }
.hpp.hpp-big.wild .hpp-exp { visibility: hidden; }
/* os dois painéis apontam para o centro: o seu (à esquerda) usa o painel espelhado (hp-me-centro.png, com "HP" e "Lv" legíveis) */
.bt-hud .hpp.hpp-big.mine { background-image: url("../assets/gba/hp-me-centro.png"); }
.bt-hud .hpp.hpp-big.mine .hpp-lv { left: 70px; }
.bt-hud .hpp.hpp-big.mine .hpp-name { left: 104px; max-width: 120px; }
.bt-hud .hpp.hpp-big.mine .hpp-hp { left: 16px; display: flex; justify-content: flex-end; }
.bt-hud .hpp.hpp-big.mine .hpp-num { left: 10px; }
.bt-hud .hpp.hpp-big.mine .hpp-exp { left: 12px; }
/* perfil de outro jogador: slots da equipe compactos */
.prof-team { grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 5px; }
.prof-mon { padding: 5px 4px; gap: 1px; font-size: 11px; }
.prof-mon .mon-icon { width: 32px !important; height: 32px !important; }
.prof-mon b { font-size: 11px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.theme-gba .prof-mon b { font-size: 12px; }
.prof-mon small { font-size: 10px; }
.prof-mon .chip.tipo { transform: scale(.75); margin: -3px 0; }
.prof-team { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 520px) { .prof-team { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.tipo-pair { display: inline-flex; gap: 3px; align-items: center; flex-shrink: 0; }
/* perfil de outro jogador: slot horizontal (ícone à esquerda; nome, nível e tipos à direita), 3 por linha */
.prof-team { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 6px; }
.prof-mon { display: grid; grid-template-columns: 36px minmax(0, 1fr); grid-template-rows: auto auto auto; column-gap: 6px; row-gap: 1px; align-items: center; text-align: left; padding: 6px 8px; }
.prof-mon .mon-icon { grid-row: 1 / 4; grid-column: 1; align-self: center; }
.prof-mon b { grid-column: 2; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prof-mon small { grid-column: 2; }
.prof-mon > .chip.tipo, .prof-mon > .tipo-pair { grid-column: 2; justify-self: start; transform: none; margin: 1px 0 0; }
.prof-mon .chip.tipo { transform: none !important; margin: 0 !important; }
.theme-gba .prof-mon .chip.tipo { width: 40px; height: 17px; background-size: 160px 140px; }
.theme-gba .prof-mon .tipo-lutador { background-position: -40px 0 !important; } .theme-gba .prof-mon .tipo-voador { background-position: -80px 0 !important; } .theme-gba .prof-mon .tipo-veneno { background-position: -120px 0 !important; }
.theme-gba .prof-mon .tipo-terra { background-position: 0 -20px !important; } .theme-gba .prof-mon .tipo-pedra { background-position: -40px -20px !important; } .theme-gba .prof-mon .tipo-inseto { background-position: -80px -20px !important; } .theme-gba .prof-mon .tipo-fantasma { background-position: -120px -20px !important; }
.theme-gba .prof-mon .tipo-aco { background-position: 0 -40px !important; } .theme-gba .prof-mon .tipo-fogo { background-position: -80px -40px !important; } .theme-gba .prof-mon .tipo-agua { background-position: -120px -40px !important; }
.theme-gba .prof-mon .tipo-planta { background-position: 0 -60px !important; } .theme-gba .prof-mon .tipo-eletrico { background-position: -40px -60px !important; } .theme-gba .prof-mon .tipo-psiquico { background-position: -80px -60px !important; } .theme-gba .prof-mon .tipo-gelo { background-position: -120px -60px !important; }
.theme-gba .prof-mon .tipo-dragao { background-position: 0 -80px !important; } .theme-gba .prof-mon .tipo-sombrio { background-position: -40px -80px !important; } .theme-gba .prof-mon .tipo-normal { background-position: 0 0 !important; }
@media (max-width: 520px) { .prof-team { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }

/* ===================== Página de perfil (profile.js) ===================== */
.ph { display: flex; flex-direction: column; gap: 10px; }
.ph-banner { position: relative; height: 110px; border-radius: 10px; border: 2px solid #2c3446; overflow: hidden; image-rendering: pixelated; }
.ph-online { position: absolute; left: 10px; top: 8px; font: 700 12px var(--font); color: #7ff0a4; text-shadow: 0 1px 2px #000; }
.ph-bname { position: absolute; right: 10px; top: 8px; font: 700 11px var(--font); color: #fff; background: rgba(0,0,0,.55); padding: 2px 8px; border-radius: 999px; }
.ph-edit { position: absolute; right: 10px; bottom: 8px; width: 28px; height: 28px; border-radius: 50%; border: 2px solid #fff; background: rgba(0,0,0,.6); color: #fff; cursor: pointer; font-size: 14px; }
.ph-edit:hover { background: var(--accent); color: #1a1400; }
.ph-edit.sm { right: -2px; bottom: -2px; width: 24px; height: 24px; font-size: 12px; }
.ph-id { display: flex; align-items: flex-end; gap: 14px; margin-top: -52px; padding: 0 12px; position: relative; z-index: 1; }
.ph-avatar { position: relative; width: 104px; height: 104px; flex-shrink: 0; border-radius: 50%; background: #121722; border: 4px solid #2c3446; display: grid; place-items: center; overflow: visible; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.ph-who { min-width: 0; padding-bottom: 4px; display: flex; flex-direction: column; gap: 4px; }
.ph-name { font-size: 24px; font-weight: 900; color: #f5c518; text-shadow: 0 2px 0 rgba(0,0,0,.6); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ph-line { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ph-title, .ph-title-btn { font: 700 12px var(--font); padding: 3px 10px; border-radius: 999px; background: #232a3a; border: 1px solid #3a4560; color: #e8ebf3; }
.ph-title-btn { cursor: pointer; } .ph-title-btn:hover { border-color: var(--accent); }
.ph-sub { font-size: 12px; color: var(--text-2); }
.ph-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.ph-stat { display: flex; flex-direction: column; align-items: center; padding: 8px 4px; border-radius: 8px; background: #151a26; border: 1px solid #2a3244; }
.ph-stat b { font: 800 18px "Inter", sans-serif; color: #fff; font-variant-numeric: tabular-nums; }
.ph-stat b i { font-style: normal; font-size: 11px; color: var(--text-2); }
.ph-stat small { font-size: 11px; color: var(--text-2); }
.ph-sec { font: 800 12px var(--font); letter-spacing: .6px; color: var(--text-2); margin-top: 2px; }
.ph-team { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.ph-mon { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 4px 4px 6px; border-radius: 8px; background: #151a26; border: 1px solid #2a3244; min-width: 0; }
.ph-mon.lead { border-color: #f5c518; }
.ph-mon.shiny { border-color: #ff9af0; }
.ph-mon img { width: 72px; height: 72px; image-rendering: pixelated; margin: -6px 0 -8px; }
.ph-mon-ic { height: 64px; display: flex; align-items: center; justify-content: center; }
.ph-mon b { font-size: 12px; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ph-mon small { font-size: 10px; color: var(--text-2); }
.ph-mon .tipo-pair, .ph-mon .chip.tipo { transform: scale(.8); }
.ph-actions { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; padding-top: 8px; border-top: 1px solid #2a3244; }
.ph-pick { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.ph-bpick, .ph-fxpick { display: flex; flex-direction: column; gap: 4px; align-items: center; padding: 6px; border-radius: 8px; background: #151a26; border: 2px solid #2a3244; color: #e8ebf3; cursor: pointer; }
.ph-bpick.on, .ph-fxpick.on, .ph-tpick.on { border-color: var(--accent); }
.ph-bpick.locked, .ph-tpick.locked { opacity: .5; cursor: not-allowed; }
.ph-bprev { width: 100%; height: 44px; border-radius: 6px; image-rendering: pixelated; }
.ph-fxprev { font-size: 28px; height: 40px; display: grid; place-items: center; } .ph-fxprev img { width: 32px; height: 32px; image-rendering: pixelated; }
.ph-tlist { display: flex; flex-direction: column; gap: 6px; }
.ph-tpick { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 8px; background: #151a26; border: 2px solid #2a3244; color: #e8ebf3; cursor: pointer; text-align: left; }
.ph-tpick small { color: var(--text-2); }
.ph-rename { display: flex; flex-direction: column; gap: 8px; }
.ph-rename-inp { padding: 8px 10px; border-radius: 8px; border: 2px solid #2f384b; background: #0f131c; color: #e8ebf3; font: 700 15px var(--font); }
/* efeito de captura */
.cfx { position: fixed; z-index: 60; pointer-events: none; width: 0; height: 0; }
.cfx > * { position: absolute; left: 0; top: 0; font-size: 22px; transform: translate(-50%, -50%); animation: cfxBurst 1.1s ease-out forwards; }
.cfx > img { width: 24px; height: 24px; image-rendering: pixelated; }
@keyframes cfxBurst { 0% { opacity: 0; transform: translate(-50%, -50%) scale(.3); } 15% { opacity: 1; } 100% { opacity: 0; transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1.1) rotate(25deg); } }
@media (max-width: 640px) { .ph-team { grid-template-columns: repeat(3, minmax(0, 1fr)); } .ph-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* GBA */
.theme-gba .ph-banner, .theme-gba .ph-avatar { border-color: var(--gba-line); }
.theme-gba .ph-avatar { background: var(--gba-navy); box-shadow: 0 0 0 2px var(--gba-white), 0 4px 12px rgba(0,0,0,.4); }
.theme-gba .ph-name { font-family: var(--gba-font); color: #ffd840; text-shadow: 2px 2px 0 var(--gba-line); }
.theme-gba .ph-stat, .theme-gba .ph-mon, .theme-gba .ph-bpick, .theme-gba .ph-fxpick, .theme-gba .ph-tpick { background: var(--gba-navy); border: 2px solid var(--gba-line); box-shadow: inset 0 0 0 1px var(--gba-blue-2); }
.theme-gba .ph-mon { background: var(--gba-blue); color: #fff; box-shadow: inset 0 0 0 1px var(--gba-blue-2), inset 0 -3px 0 var(--gba-blue-3); }
.theme-gba .ph-mon.lead { border-color: var(--gba-orange); }
.theme-gba .ph-mon b { font-family: var(--gba-font); text-shadow: 1px 1px 0 var(--gba-line); }
.theme-gba .ph-mon small { color: #fff; }
.theme-gba .ph-sec { font-family: var(--gba-font); color: #e8f0d8; }
.theme-gba .ph-bpick.on, .theme-gba .ph-fxpick.on, .theme-gba .ph-tpick.on { border-color: var(--gba-orange); }
#hud-trainer { cursor: pointer; } #hud-trainer:hover { filter: brightness(1.08); }
.ph-bcats { display: flex; flex-direction: column; gap: 12px; max-height: 70vh; overflow: auto; padding-right: 4px; }
.ph-bcats .ph-pick { grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); margin-top: 6px; }
.ph-bcats .ph-bpick small { font-size: 11px; }
/* a faixa do nome sobe por cima do banner: não pode roubar o clique do lápis do fundo */
.ph-id { pointer-events: none; } .ph-id > * { pointer-events: auto; }
.ph-banner .ph-edit { top: 34px; bottom: auto; right: 10px; z-index: 2; }
/* IVs em radar hexagonal */
.iv-radar { width: 100%; max-width: 230px; display: block; margin: 0 auto; overflow: visible; }
.ivr-grid { fill: none; stroke: rgba(255,255,255,.22); stroke-width: 1; }
.ivr-fill { fill: rgba(110,170,70,.72); stroke: #8fd45a; stroke-width: 1.5; stroke-linejoin: round; }
.ivr-lbl { fill: #b8c2d8; font-size: 13px; font-weight: 700; }
.ivr-val { fill: #fff; font-weight: 800; }
.ivr-dot { fill: #c8f59a; stroke: #2e4a1a; stroke-width: 1; }
.ivr-val.max { fill: #ffd166; }
.ivr-ev { fill: #9fb4ff; font-size: 11px; font-weight: 700; }
.ivr-ev.max { fill: #4ade80; }
.theme-gba .ivr-lbl, .theme-gba .ivr-val, .theme-gba .ivr-ev { font-family: var(--gba-num); }
/* NPC de missões */
.nq { display: flex; flex-direction: column; gap: 10px; width: 100%; min-width: 0; }
.modal-box:has(.nq) { width: min(640px, 94vw); }
.nq-head { display: flex; gap: 12px; align-items: center; background: #fff; color: #283040; border: 3px solid #283040; border-radius: 8px; padding: 8px 12px; box-shadow: inset 0 0 0 2px #d8d8e0; }
.nq-npc { flex-shrink: 0; width: 64px; height: 64px; display: flex; align-items: flex-end; justify-content: center; }
.nq-say b { font-family: var(--gba-font, inherit); color: #c03028; font-size: 14px; }
.nq-say p { margin: 4px 0 0; font-size: 13px; line-height: 1.35; }
.nq-list { display: flex; flex-direction: column; gap: 8px; }
.nq-card { display: flex; gap: 10px; align-items: center; justify-content: space-between; padding: 8px 10px; border-radius: 8px; background: #1b2232; border: 2px solid #2f3a52; }
.nq-card.ready { border-color: #ffd166; box-shadow: 0 0 0 1px #ffd16655, inset 0 0 18px #ffd16622; }
.nq-top { display: flex; gap: 10px; align-items: center; min-width: 0; flex: 1; }
.nq-mon { width: 44px; height: 44px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: #0f1420; border-radius: 8px; }
.nq-type { font-weight: 800; font-size: 12px; color: #ffd166; }
.nq-info { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 4px; }
.nq-title { font-weight: 700; font-size: 13px; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.nq-kind { font-size: 9px; font-weight: 800; letter-spacing: .5px; padding: 1px 5px; border-radius: 4px; background: #2f3a52; color: #b8c2d8; }
.nq-bar { position: relative; height: 14px; border-radius: 7px; background: #0b0e14; overflow: hidden; }
.nq-bar > div { height: 100%; background: linear-gradient(90deg, #3cc7ff, #7ff0a4); }
.nq-card.ready .nq-bar > div { background: linear-gradient(90deg, #ffb347, #ffd166); }
.nq-bar span { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 800; color: #fff; text-shadow: 0 1px 2px #000; }
.nq-reward { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 11px; color: #d8dfef; align-items: center; }
.nq-rw { display: inline-flex; align-items: center; gap: 3px; }
.nq-coin, .nq-ic { width: 16px; height: 16px; image-rendering: pixelated; }
.nq-btns { display: flex; flex-direction: column; gap: 5px; flex-shrink: 0; }
.nq-btns .btn { min-width: 108px; }
.nq-foot { text-align: center; }
.nq-give { display: flex; flex-wrap: wrap; gap: 8px; }
.nq-gm { display: flex; flex-direction: column; align-items: center; padding: 6px 10px; background: #1b2232; border-radius: 8px; border: 2px solid #2f3a52; }
.nq-gm small { color: var(--text-2); font-size: 10px; }
@media (max-width: 560px) { .nq-card { flex-direction: column; align-items: stretch; } .nq-btns { flex-direction: row; } .nq-btns .btn { flex: 1; } }
.theme-gba .nq-card, .theme-gba .nq-gm { background: var(--gba-navy); border-color: var(--gba-line); box-shadow: inset 0 0 0 1px var(--gba-blue-2); }
.theme-gba .nq-card.ready { border-color: var(--gba-orange); }
.theme-gba .nq-title, .theme-gba .nq-bar span { font-family: var(--gba-font); }
/* Pokémon capturado com Premier Ball: nome brilhando em RGB */
.nm-rgb { background: linear-gradient(90deg, #ff4d4d, #ffb34d, #fff04d, #4dff88, #4dd2ff, #9a6bff, #ff4dd8, #ff4d4d); background-size: 300% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent !important; -webkit-text-fill-color: transparent; animation: nm-rgb 3s linear infinite; text-shadow: none !important; filter: drop-shadow(0 0 3px rgba(255,255,255,.35)); }
@keyframes nm-rgb { to { background-position: 300% 0; } }
@media (prefers-reduced-motion: reduce) { .nm-rgb { animation: none; } }
/* recompensa diária */
.money-pill.daily { position: relative; cursor: pointer; color: #fff; font: 800 12px var(--mono); }
.money-pill.daily .daily-dot { display: none; position: absolute; top: -3px; right: -3px; width: 10px; height: 10px; border-radius: 50%; background: #ff4d5e; border: 2px solid #fff; }
.money-pill.daily.ready { border-color: #ffd166; box-shadow: 0 0 10px #ffd16688; animation: dl-pulse 1.4s ease-in-out infinite; }
.money-pill.daily.ready .daily-dot { display: block; }
@keyframes dl-pulse { 50% { box-shadow: 0 0 16px #ffd166cc; } }
.modal-box:has(.dl) { width: min(680px, 94vw); }
.dl { display: flex; flex-direction: column; gap: 10px; }
.dl-sub { margin: 0; text-align: center; }
.dl-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.dl-day { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 8px 6px; border-radius: 8px; background: #1b2232; border: 2px solid #2f3a52; text-align: center; min-height: 112px; justify-content: space-between; }
.dl-day.big { grid-column: span 2; background: linear-gradient(160deg, #2a2140, #1b2232); border-color: #9a6bff; }
.dl-day.today { border-color: #ffd166; box-shadow: 0 0 0 1px #ffd16666, inset 0 0 18px #ffd16633; }
.dl-day.done { opacity: .55; }
.dl-n { font-weight: 800; font-size: 12px; letter-spacing: .5px; }
.dl-items { display: flex; flex-wrap: wrap; gap: 4px 8px; justify-content: center; font-weight: 800; font-size: 12px; }
.dl-rw { display: inline-flex; align-items: center; gap: 2px; }
.dl-ic { width: 28px; height: 28px; image-rendering: pixelated; }
.dl-tag { font-size: 11px; color: var(--text-2); }
.dl-tag.ok { color: #7ff0a4; font-weight: 800; }
.dl-foot { text-align: center; }
@media (max-width: 520px) { .dl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.theme-gba .dl-day { background: var(--gba-navy); border-color: var(--gba-line); box-shadow: inset 0 0 0 1px var(--gba-blue-2); }
.theme-gba .dl-day.today { border-color: var(--gba-orange); }
.theme-gba .dl-n { font-family: var(--gba-font); }
/* confirmação do jogo (substitui confirm/prompt do navegador) */
.gc-wrap { position: fixed; inset: 0; z-index: 10050; background: rgba(6,8,14,.55); display: flex; align-items: center; justify-content: center; padding: 16px; animation: gc-in .12s ease-out; }
.gc-box { width: min(420px, 100%); background: #1b2232; border: 3px solid #283040; border-radius: 10px; box-shadow: 0 0 0 2px #5b6c99, 0 18px 40px rgba(0,0,0,.5); padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.gc-msg { white-space: pre-line; font-size: 14px; line-height: 1.45; color: #eef2fb; }
.gc-input { width: 100%; padding: 8px 10px; border-radius: 6px; border: 2px solid #3a4460; background: #0f1420; color: #fff; font: inherit; }
.gc-btns { display: flex; gap: 8px; justify-content: flex-end; }
.gc-btns .btn { min-width: 96px; }
@keyframes gc-in { from { opacity: 0; } }
.theme-gba .gc-box { background: #fff; color: #283040; border-color: var(--gba-line); box-shadow: inset 0 0 0 2px #d8d8e0, 0 0 0 3px var(--gba-white), 0 18px 40px rgba(0,0,0,.5); }
.theme-gba .gc-msg { color: #283040; font-family: var(--gba-font); font-size: 15px; }
.theme-gba .gc-input { background: #f4f4f8; color: #283040; border-color: var(--gba-line); }
/* Premier Ball: contorno arco-íris no sprite */
.spr-rgb { animation: spr-rgb 2.4s linear infinite; }
@keyframes spr-rgb {
  0%    { filter: drop-shadow(1px 0 0 #ff4d4d) drop-shadow(-1px 0 0 #ff4d4d) drop-shadow(0 1px 0 #ff4d4d) drop-shadow(0 -1px 0 #ff4d4d) drop-shadow(0 0 3px #ff4d4d); }
  16.6% { filter: drop-shadow(1px 0 0 #ffb34d) drop-shadow(-1px 0 0 #ffb34d) drop-shadow(0 1px 0 #ffb34d) drop-shadow(0 -1px 0 #ffb34d) drop-shadow(0 0 3px #ffb34d); }
  33.3% { filter: drop-shadow(1px 0 0 #fff04d) drop-shadow(-1px 0 0 #fff04d) drop-shadow(0 1px 0 #fff04d) drop-shadow(0 -1px 0 #fff04d) drop-shadow(0 0 3px #fff04d); }
  50%   { filter: drop-shadow(1px 0 0 #4dff88) drop-shadow(-1px 0 0 #4dff88) drop-shadow(0 1px 0 #4dff88) drop-shadow(0 -1px 0 #4dff88) drop-shadow(0 0 3px #4dff88); }
  66.6% { filter: drop-shadow(1px 0 0 #4dd2ff) drop-shadow(-1px 0 0 #4dd2ff) drop-shadow(0 1px 0 #4dd2ff) drop-shadow(0 -1px 0 #4dd2ff) drop-shadow(0 0 3px #4dd2ff); }
  83.3% { filter: drop-shadow(1px 0 0 #9a6bff) drop-shadow(-1px 0 0 #9a6bff) drop-shadow(0 1px 0 #9a6bff) drop-shadow(0 -1px 0 #9a6bff) drop-shadow(0 0 3px #9a6bff); }
  100%  { filter: drop-shadow(1px 0 0 #ff4d4d) drop-shadow(-1px 0 0 #ff4d4d) drop-shadow(0 1px 0 #ff4d4d) drop-shadow(0 -1px 0 #ff4d4d) drop-shadow(0 0 3px #ff4d4d); }
}
@media (prefers-reduced-motion: reduce) { .spr-rgb { animation: none; filter: drop-shadow(0 0 2px #ff4dd8) drop-shadow(0 0 2px #4dd2ff); } }
/* batalha (PvP e tela estilo PvP): o sprite é grande (192 px), então o contorno RGB é mais grosso e com brilho */
.pv-mon img.spr-rgb { animation: spr-rgb-big 2.4s linear infinite; }
@keyframes spr-rgb-big {
  0%    { filter: drop-shadow(2px 0 0 #ff4d4d) drop-shadow(-2px 0 0 #ff4d4d) drop-shadow(0 2px 0 #ff4d4d) drop-shadow(0 -2px 0 #ff4d4d) drop-shadow(0 0 8px #ff4d4d); }
  16.6% { filter: drop-shadow(2px 0 0 #ffb34d) drop-shadow(-2px 0 0 #ffb34d) drop-shadow(0 2px 0 #ffb34d) drop-shadow(0 -2px 0 #ffb34d) drop-shadow(0 0 8px #ffb34d); }
  33.3% { filter: drop-shadow(2px 0 0 #fff04d) drop-shadow(-2px 0 0 #fff04d) drop-shadow(0 2px 0 #fff04d) drop-shadow(0 -2px 0 #fff04d) drop-shadow(0 0 8px #fff04d); }
  50%   { filter: drop-shadow(2px 0 0 #4dff88) drop-shadow(-2px 0 0 #4dff88) drop-shadow(0 2px 0 #4dff88) drop-shadow(0 -2px 0 #4dff88) drop-shadow(0 0 8px #4dff88); }
  66.6% { filter: drop-shadow(2px 0 0 #4dd2ff) drop-shadow(-2px 0 0 #4dd2ff) drop-shadow(0 2px 0 #4dd2ff) drop-shadow(0 -2px 0 #4dd2ff) drop-shadow(0 0 8px #4dd2ff); }
  83.3% { filter: drop-shadow(2px 0 0 #9a6bff) drop-shadow(-2px 0 0 #9a6bff) drop-shadow(0 2px 0 #9a6bff) drop-shadow(0 -2px 0 #9a6bff) drop-shadow(0 0 8px #9a6bff); }
  100%  { filter: drop-shadow(2px 0 0 #ff4d4d) drop-shadow(-2px 0 0 #ff4d4d) drop-shadow(0 2px 0 #ff4d4d) drop-shadow(0 -2px 0 #ff4d4d) drop-shadow(0 0 8px #ff4d4d); }
}
@media (prefers-reduced-motion: reduce) { .pv-mon img.spr-rgb { animation: none; filter: drop-shadow(0 0 4px #ff4dd8) drop-shadow(0 0 4px #4dd2ff); } }
/* janela da Automação ~30% mais estreita (1180 → 800) */
.win-box:has(#panel-auto.active) { max-width: 800px; }
/* PC: favoritos */
.pc-card { position: relative; }
.pc-fav { position: absolute; top: 4px; right: 6px; z-index: 2; width: 26px; height: 26px; border-radius: 6px; border: 0; background: transparent; color: #8a94ab; font-size: 18px; line-height: 1; cursor: pointer; }
.pc-fav:hover { color: #ffd166; background: #ffffff12; }
.pc-fav.on { color: #ffd166; text-shadow: 0 0 6px #ffd16699, 1px 1px 0 #6b4a00; }
.pc-card.fav { border-color: #ffd166 !important; box-shadow: 0 0 0 1px #ffd16655, inset 0 0 14px #ffd16622; }
.theme-gba .pc-fav { color: #c8d0e8; text-shadow: 1px 1px 0 var(--gba-line); }
.theme-gba .pc-fav.on { color: #ffd166; }
/* relatório da progressão offline */
.modal-box:has(.offline-report) { width: min(560px, 94vw); }
.offline-report { display: flex; flex-direction: column; gap: 10px; }
.or-head { display: flex; flex-direction: column; gap: 2px; background: #fff; color: #283040; border: 3px solid #283040; border-radius: 8px; padding: 8px 12px; box-shadow: inset 0 0 0 2px #d8d8e0; }
.or-head b { font-family: var(--gba-font, inherit); font-size: 17px; color: #c03028; }
.or-head small { color: #50607a; font-size: 12px; }
.or-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.or-list li { display: flex; align-items: center; gap: 10px; padding: 7px 10px; border-radius: 8px; background: #1b2232; border: 2px solid #2f3a52; font-weight: 800; font-size: 15px;
  opacity: 0; transform: translateX(-12px); animation: or-in .35s ease-out forwards; }
.or-ic { width: 28px; height: 28px; image-rendering: pixelated; object-fit: contain; flex-shrink: 0; }
.or-emo { width: 28px; text-align: center; font-size: 20px; color: #ffd166; flex-shrink: 0; }
@keyframes or-in { to { opacity: 1; transform: none; } }
.or-exp { font-size: 12px; color: #9fb0d0; text-align: center; }
.or-sec { font-size: 11px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; color: #ffd166; margin-top: 2px; }
.or-mons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.or-mon { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 6px; border-radius: 8px; background: #1b2232; border: 2px solid #2f3a52; min-width: 0; }
.or-mon.shiny { border-color: #ff9af0; box-shadow: inset 0 0 14px #ff9af033; }
.or-mon b { font-size: 12px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.or-mon small { font-size: 10px; color: var(--text-2); }
.or-strip { display: flex; flex-wrap: wrap; gap: 2px; align-items: center; }
.or-more { font-weight: 800; font-size: 12px; color: #9fb0d0; margin-left: 4px; }
.offline-report .mon-icon { flex: 0 0 auto; }
@media (prefers-reduced-motion: reduce) { .or-list li { animation: none; opacity: 1; transform: none; } }
.theme-gba .or-list li, .theme-gba .or-mon { background: var(--gba-navy); border-color: var(--gba-line); box-shadow: inset 0 0 0 1px var(--gba-blue-2); color: #fff; }
.theme-gba .or-list li span { font-family: var(--gba-font); }
.or-warn { font-size: 12px; font-weight: 700; color: #ffd166; background: #3a2a0055; border: 1px solid #ffd16666; border-radius: 6px; padding: 6px 8px; text-align: center; }
/* Pokémon do Dia */
.hud-card.dailymon { cursor: pointer; padding: 6px 10px; border-color: #ffd16688 !important; }
.dm-head { white-space: nowrap; font-size: 11px; font-weight: 800; letter-spacing: .5px; color: #ffd166; }
.dm-time { font-size: 10px; color: #9fb0d0; font-weight: 700; }
.dm-body { display: flex; align-items: center; gap: 8px; margin-top: 2px; }
.dm-body .mon-icon { flex: 0 0 auto; }
.dm-info { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.dm-info b { font-size: 14px; }
.dm-bon { display: flex; flex-wrap: wrap; gap: 3px; }
.dm-bon span { font-size: 10px; font-weight: 800; padding: 1px 5px; border-radius: 4px; background: #ffd16622; color: #ffe39a; }
.dm-chip { background: #ffd16633 !important; color: #ffd166 !important; border-color: #ffd16688 !important; margin-left: 4px; }
.modal-box:has(.dm-modal) { width: min(480px, 94vw); }
.dm-modal { display: flex; flex-direction: column; gap: 10px; }
.dm-hero { display: flex; gap: 12px; align-items: center; }
.dm-hero b { font-size: 18px; display: block; margin-bottom: 4px; }
.dm-hero p { margin: 6px 0 0; font-size: 13px; line-height: 1.4; }
.dm-hero .mon-icon { flex: 0 0 auto; }
.dm-zones { display: flex; flex-wrap: wrap; gap: 6px; }
.theme-gba .dm-head span, .theme-gba .dm-info b { font-family: var(--gba-font); }
/* conversa com NPC (caixa de texto estilo GBA) */
.nt-box { position: fixed; left: 50%; bottom: calc(var(--dock-h, 136px) + 18px); transform: translateX(-50%); z-index: 9000; width: min(640px, calc(100vw - 32px));
  background: #fff; color: #283040; border: 4px solid #283040; border-radius: 10px; box-shadow: inset 0 0 0 3px #d8d8e0, inset 0 0 0 5px #6890c0, 0 10px 30px rgba(0,0,0,.45);
  padding: 12px 18px 14px; cursor: pointer; animation: nt-in .15s ease-out; user-select: none; }
.nt-name { position: absolute; top: -16px; left: 14px; background: #3870c8; color: #fff; font: 700 13px var(--gba-font, inherit); padding: 2px 10px; border-radius: 6px; border: 2px solid #283040; }
.nt-text { font: 400 17px/1.45 var(--gba-font, inherit); min-height: 50px; white-space: pre-wrap; }
.nt-more { position: absolute; right: 14px; bottom: 6px; color: #e04040; font-size: 12px; animation: nt-bob .6s steps(2) infinite; }
@keyframes nt-in { from { opacity: 0; transform: translate(-50%, 8px); } }
@keyframes nt-bob { 50% { transform: translateY(2px); } }
/* held items */
.held-modal { display: flex; flex-direction: column; gap: 10px; }
.modal-box:has(.held-modal) { width: min(520px, 94vw); }
.held-cur { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 8px; background: #1b2232; border: 2px solid #2f3a52; }
.held-slot { width: 52px; height: 52px; flex-shrink: 0; border-radius: 10px; border: 2px dashed #4a5670; display: flex; align-items: center; justify-content: center; color: #6b7894; font-size: 20px; }
.held-slot.on { border-style: solid; border-color: #ffd166; background: #ffd16614; }
.held-big { width: 40px; height: 40px; image-rendering: pixelated; }
.held-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.held-txt b { font-size: 15px; }
.held-txt small { font-size: 12px; color: var(--text-2); line-height: 1.35; }
.held-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; max-height: 46vh; overflow-y: auto; padding-right: 2px; }
.held-opt { display: flex; align-items: center; gap: 8px; text-align: left; padding: 6px 8px; border-radius: 8px; background: #151a26; border: 2px solid #2a3244; color: inherit; font: inherit; cursor: pointer; min-width: 0; }
.held-opt:hover { border-color: #ffd166; }
.held-opt > span { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.held-opt b { font-size: 12px; }
.held-opt small { font-size: 10px; color: var(--text-2); line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.held-opt em { font-style: normal; font-weight: 800; font-size: 11px; color: #9fb0d0; }
.held-opt .mon-icon { flex: 0 0 auto; }
.held-ic { width: 20px; height: 20px; image-rendering: pixelated; vertical-align: middle; flex-shrink: 0; }
.held-btn { display: inline-flex; align-items: center; gap: 3px; }
.held-btn .held-ic { width: 16px; height: 16px; }
.held-line { display: flex; align-items: center; gap: 6px; font-size: 12px; margin-top: 4px; color: #ffe39a; }
.dock-slot { position: relative; }
.slot-held { position: absolute; left: 3px; bottom: 16px; width: 18px; height: 18px; image-rendering: pixelated; pointer-events: auto; filter: drop-shadow(0 0 1px #000); }
@media (max-width: 520px) { .held-list { grid-template-columns: 1fr; } }
.theme-gba .held-cur, .theme-gba .held-opt { background: var(--gba-navy); border-color: var(--gba-line); box-shadow: inset 0 0 0 1px var(--gba-blue-2); color: #fff; }
.theme-gba .held-txt b, .theme-gba .held-opt b { font-family: var(--gba-font); }
.lead-sprite { position: relative; } .slot-held.lead-held { left: 2px; bottom: 2px; width: 22px; height: 22px; }
/* efetividade no botão de golpe */
.bt-move { position: relative; }
.bt-eff { position: absolute; top: 3px; right: 5px; font-style: normal; font-size: 10px; font-weight: 800; padding: 0 4px; border-radius: 4px; line-height: 15px; background: rgba(0,0,0,.45); color: #fff; }
.bt-eff.e2 { background: #2fbf5b; }
.bt-eff.e5 { background: #c98a2a; }
.bt-eff.e0 { background: #8a2a36; }
/* visuais pagos */
.outfit-cell { position: relative; }
.outfit-cell.locked { opacity: .82; }
.outfit-price { position: absolute; top: 4px; right: 4px; display: inline-flex; align-items: center; gap: 2px; font-size: 10px; font-weight: 800; padding: 1px 5px; border-radius: 6px; background: rgba(20,30,60,.85); color: #8fe3ff; }
.outfit-price img { width: 12px; height: 12px; image-rendering: pixelated; }
.nq-card.offer { border-style: dashed; }
/* diário de missões */
.money-pill.quests img { width: 20px; height: 20px; }
.modal-box:has(.ql) { width: min(580px, 94vw); }
.ql { display: flex; flex-direction: column; gap: 6px; }
.ql-row { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; background: #1b2232; border: 2px solid #2f3a52; }
.ql-row.tracked { border-color: #6fc3ff; box-shadow: inset 0 0 14px #6fc3ff22; }
.ql-row.done { border-color: #ffd166; }
.ql-row .mon-icon { flex: 0 0 auto; }
.ql-ic { width: 32px; height: 32px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 18px; color: #ffd166; background: #0f1420; border-radius: 8px; }
.ql-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.ql-info b { font-size: 13px; }
.ql-info small { font-size: 11px; color: var(--text-2); }
.ql-btns { display: flex; flex-direction: column; gap: 4px; flex-shrink: 0; }
.ql-tip { text-align: center; padding: 4px; }
.hud-card.track { cursor: pointer; padding: 6px 10px; border-color: #6fc3ff88 !important; display: flex; flex-direction: column; gap: 4px; }
.hud-card.track.hidden { display: none; }
.trk-head { display: flex; justify-content: space-between; gap: 6px; font-size: 11px; font-weight: 800; color: #6fc3ff; letter-spacing: .5px; white-space: nowrap; }
.trk-head small { color: #9fb0d0; font-weight: 700; letter-spacing: 0; overflow: hidden; text-overflow: ellipsis; }
.trk-title { font-size: 13px; }
.theme-gba .ql-row { background: var(--gba-navy); border-color: var(--gba-line); box-shadow: inset 0 0 0 1px var(--gba-blue-2); color: #fff; }
.theme-gba .ql-row.tracked { border-color: #6fc3ff; }
.theme-gba .trk-title, .theme-gba .ql-info b { font-family: var(--gba-font); }
/* eventos do mundo: anúncio, card da HUD e clima sobre o mapa */
.ev-banner { position: fixed; top: 64px; left: 50%; transform: translateX(-50%); z-index: 9500; width: min(620px, calc(100vw - 32px)); display: flex; align-items: center; gap: 12px;
  background: #fff; color: #283040; border: 4px solid #283040; border-radius: 12px; padding: 10px 16px; box-shadow: inset 0 0 0 3px #d8d8e0, 0 12px 36px rgba(0,0,0,.5); cursor: pointer;
  animation: ev-in .5s cubic-bezier(.2,1.4,.4,1); transition: opacity .7s, transform .7s; }
.ev-banner.out { opacity: 0; transform: translate(-50%, -20px); }
.ev-ic { font-size: 34px; line-height: 1; }
.ev-txt { display: flex; flex-direction: column; gap: 2px; }
.ev-txt b { font: 800 15px var(--gba-font, inherit); color: #c03028; letter-spacing: .5px; }
.ev-txt span { font-size: 14px; line-height: 1.35; }
.ev-banner.ev-chuva { box-shadow: inset 0 0 0 3px #b8d8f8, 0 12px 36px rgba(0,0,0,.5); }
.ev-banner.ev-sol { box-shadow: inset 0 0 0 3px #ffe08a, 0 12px 36px rgba(0,0,0,.5); }
.ev-banner.ev-brilho { box-shadow: inset 0 0 0 3px #ff9af0, 0 0 30px #ff9af088; }
@keyframes ev-in { from { opacity: 0; transform: translate(-50%, -30px) scale(.9); } }
.hud-card.evt { cursor: pointer; padding: 6px 10px; border-color: #8fe3ff99 !important; display: flex; flex-direction: column; gap: 2px; }
.hud-card.evt.hidden { display: none; }
.evh-head { font-size: 11px; font-weight: 800; letter-spacing: .5px; color: #8fe3ff; }
.hud-card.evt b { font-size: 14px; }
.hud-card.evt small { font-size: 11px; color: #9fb0d0; }
.theme-gba .hud-card.evt b { font-family: var(--gba-font); }
.weather { position: absolute; inset: 0; pointer-events: none; z-index: 2; opacity: 0; transition: opacity 1.2s; }
.weather.on { opacity: 1; }
.wx-chuva { background-image: repeating-linear-gradient(105deg, transparent 0 14px, rgba(190,215,255,.32) 14px 15px, transparent 15px 34px); background-size: 160px 160px; animation: wx-rain .35s linear infinite; background-color: rgba(30,50,90,.18); }
@keyframes wx-rain { to { background-position: -40px 160px; } }
.wx-sol { background: radial-gradient(circle at 85% 0%, rgba(255,230,140,.45), transparent 55%), rgba(255,170,60,.08); }
.wx-neblina { background: linear-gradient(180deg, rgba(220,225,235,.38), rgba(200,205,220,.22)); backdrop-filter: blur(1px); animation: wx-fog 8s ease-in-out infinite alternate; }
@keyframes wx-fog { to { opacity: .7; } }
.wx-noite { background: radial-gradient(circle at 80% 10%, rgba(255,255,230,.35) 0 30px, transparent 90px), rgba(15,20,60,.38); }
.wx-brilho { background: linear-gradient(120deg, rgba(255,120,220,.16), rgba(120,220,255,.16), rgba(255,240,120,.16)); background-size: 300% 300%; animation: wx-aurora 6s linear infinite; }
@keyframes wx-aurora { to { background-position: 300% 0; } }
@media (prefers-reduced-motion: reduce) { .wx-chuva, .wx-neblina, .wx-brilho { animation: none; } }
.hud-btns { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }   /* Missões e Diária: abaixo do dinheiro, no canto direito */
/* Pokémon do Dia (compacto) à esquerda de Missões e Diária */
.hud-btns-row { display: flex; align-items: stretch; gap: 6px; }
.hud-btns-row .hud-card.dailymon { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; padding: 3px 8px 4px; }
.hud-btns-row .hud-card.dailymon.hidden { display: none; }
.hud-btns-row .dm-head { font-size: 9px; letter-spacing: .3px; }
.hud-btns-row .dm-body { gap: 2px; margin-top: 0; }
.dm-star { color: #ffd166; font-size: 18px; line-height: 1; text-shadow: 0 1px 0 #000; }

/* ---------------- card "Vitória!" depois de cada batalha (acima da barra de nível) ---------------- */
.victory-card { align-self: center; display: flex; align-items: center; gap: 10px; margin-bottom: 6px; padding: 7px 14px 7px 8px; width: max-content; max-width: 92vw;
  background: rgba(10,13,20,.92); border: 1px solid var(--hud-line, #333a4a); border-radius: 10px; box-shadow: 0 6px 18px rgba(0,0,0,.45);
  font-size: 13px; color: #e8ecf4; pointer-events: none; animation: vc-in .25s ease-out; transition: opacity .35s, transform .35s; }
.victory-card.out { opacity: 0; transform: translateY(6px); }
@keyframes vc-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.victory-card .mon-icon { flex-shrink: 0; }
.vc-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.vc-head { display: flex; align-items: baseline; gap: 8px; }
.vc-head b { color: #7ee06a; font-size: 14px; }
.vc-head small { color: #aab3c5; }
.vc-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }
.vc-main { flex-wrap: nowrap; }
.vc-main .vc-stat + .vc-stat::before { content: "·"; margin-right: 8px; opacity: .5; }
.vc-stat { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.vc-stat i { font-style: normal; }
.vc-stat img, .vc-share img { width: 16px; height: 16px; image-rendering: pixelated; }
.vc-stat.xp { color: #8fd0ff; } .vc-stat.txp { color: #f5c518; } .vc-stat.gold { color: #ffd76a; }
.vc-share { color: #9fe39a; font-size: 12px; gap: 4px; }
.vc-loot { color: #e0c8ff; font-size: 12px; }
.vc-loot img { width: 20px; height: 20px; }
.vc-evs { color: #c9a7ff; font-size: 12px; }

/* card do Pokémon: atributo · valor · IV · EV, com a legenda em cima */
.mon-card .mc-cols { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); column-gap: 16px; }
.mc-stats4 { display: grid; grid-template-columns: 1fr auto auto; gap: 3px 8px; align-items: baseline; font-size: 13px; }
.mc-stats4 b { font-family: var(--mono); font-weight: 600; text-align: right; white-space: nowrap; }
.mc-stats4 i { font-style: normal; font-family: var(--mono); font-weight: 700; font-size: 12px; text-align: right; }
.mc-stats4 .mc-h { font-family: inherit; font-size: 10px; font-weight: 800; letter-spacing: .5px; color: var(--muted, #8fa0c8); }
.mc-stats4 .mc-ivev { display: inline-grid; grid-template-columns: 22px 44px; column-gap: 10px; white-space: nowrap; }
.mc-stats4 .mc-ivev .mc-iv { text-align: right; } .mc-stats4 .mc-ivev .mc-ev { text-align: left; }
.mc-stats4 .mc-iv { color: #cfe0ff; } .mc-stats4 .mc-iv.max { color: #ffd166; }
.mc-stats4 .mc-ev { color: #9fb4ff; } .mc-stats4 .mc-ev.max { color: #4ade80; } .mc-stats4 .mc-ev.zero { color: #59627a; }
.mc-stats4 .mc-exp { margin-top: 2px; } .mc-stats4 .mc-exp-v { grid-column: 2 / 4; margin-top: 2px; }
.mc-stats4 span.mc-h { text-align: right; } .mc-stats4 i.mc-h { text-align: center; }
.theme-gba .mc-stats4 b, .theme-gba .mc-stats4 i { font-family: var(--gba-num); }

/* Loja de Diamantes: saldo em destaque */
.dshop-bal { display: inline-flex; align-items: center; gap: 6px; margin: 2px 0 6px; padding: 4px 12px; border-radius: 999px; background: rgba(90, 160, 255, .12); border: 1px solid rgba(120, 180, 255, .35); font-size: 13px; }
.dshop-bal img { width: 20px; height: 20px; image-rendering: pixelated; }
.dshop-bal b { font-family: var(--mono); color: #9fd0ff; }
/* EV Reset individual: Pokémon e os atributos que têm EVs */
.evr-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; width: 100%; }
.evr-mon { display: inline-flex; align-items: center; gap: 4px; min-width: 110px; font-weight: 700; }
/* Configurações › Conta */
.opt-acts { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; flex-shrink: 0; }

/* tela de batalha estilo PvP (opcional): por cima do mapa, acima do menu de batalha */
/* fica no rodapé, logo acima do menu de batalha, na mesma largura dele (os dois formam uma janela só) */
.battle-scene { position: relative; width: min(760px, calc(100vw - 700px)); min-width: 440px; margin-bottom: -6px; z-index: 1;
  border: 3px solid #283050; border-bottom: 0; border-radius: 12px 12px 0 0; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,.55); pointer-events: none !important; }
.battle-scene.hidden { display: none; }
.battle-scene .pv-field { height: 290px; }
.battle-scene .pv-mon, .battle-scene .pv-mon img { width: 176px; height: 176px; }
.battle-scene .pv-side.me .pv-mon { bottom: -26px; }
#bt-hud.scene-on { display: none !important; }   /* a tela já tem os painéis de HP */
.scene-fx { position: absolute; left: 50%; top: 46%; transform: translate(-50%, -50%); z-index: 3; pointer-events: none; image-rendering: pixelated; background-repeat: no-repeat; }
.pv-mon.scene-hit img { animation: sceneHit .42s steps(1, end); }
@keyframes sceneHit { 0% { transform: translateX(-5px); opacity: .25; } 20% { transform: translateX(5px); opacity: 1; } 40% { transform: translateX(-4px); opacity: .25; } 60% { transform: translateX(3px); opacity: 1; } 100% { transform: none; opacity: 1; } }
/* Premier Ball: o tremor do golpe roda junto com o contorno RGB (sozinho, ele trocava a animação e o RGB sumia) */
.pv-mon.scene-hit img.spr-rgb { animation: sceneHit .42s steps(1, end), spr-rgb-big 2.4s linear infinite; }
@media (prefers-reduced-motion: reduce) { .pv-mon.scene-hit img { animation: none; } }
@media (max-width: 700px) { .battle-scene .pv-mon, .battle-scene .pv-mon img { width: 128px; height: 128px; } .battle-scene .pv-field { height: 230px; } }
/* tela baixa: a tela de batalha encolhe para caber acima do menu */
@media (max-height: 820px) { .battle-scene .pv-field { height: 230px; } .battle-scene .pv-mon, .battle-scene .pv-mon img { width: 144px; height: 144px; } }
@media (max-height: 680px) { .battle-scene .pv-field { height: 170px; } .battle-scene .pv-mon, .battle-scene .pv-mon img { width: 112px; height: 112px; } .battle-scene .pv-side.foe .pv-info { top: 6px; } .battle-scene .pv-side.me .pv-info { bottom: 10px; } }

/* setinhas de atributo em batalha (Tail Whip → "DEF ▼", Swords Dance → "ATQ ▲2") */
.hpp-stages { position: absolute; left: 6px; right: 6px; bottom: 100%; margin-bottom: 4px; display: flex; flex-wrap: wrap; gap: 3px; pointer-events: auto; }
.hpp-stages:empty { display: none; }
.pv-side.foe .hpp-stages { bottom: auto; top: 100%; margin: 4px 0 0; }
.stg { display: inline-flex; align-items: center; gap: 2px; padding: 1px 5px; border-radius: 4px; font: 800 11px/1.3 "Inter", sans-serif; letter-spacing: .3px;
  color: #fff; border: 1px solid rgba(0,0,0,.35); box-shadow: 0 1px 0 rgba(0,0,0,.35); filter: none; }
.stg b { font-size: 10px; }
.stg.up { background: #2f9e44; }
.stg.down { background: #c92a2a; }

/* título do menu de batalha + botão de alternar a visão (mapa ↔ tela de batalha) */
.bt-head { display: flex; gap: 6px; align-items: stretch; margin-bottom: 7px; }
.bt-head .bt-title { flex: 1; margin-bottom: 0; }
.bt-view { flex: 0 0 auto; width: 32px; padding: 0; display: grid; place-items: center; border-radius: 6px; border: 2px solid #283840; background: #fff; cursor: pointer; }
.bt-view:hover { background: #ffe9b0; }
.bt-view img { width: 22px; height: 22px; }
/* tela de batalha ligada: o menu fica grudado embaixo dela, como uma janela só */
.battle-ui.joined, .theme-gba .battle-ui.joined { border-top-left-radius: 0; border-top-right-radius: 0; border-top-width: 3px; }
/* relatório da caçada: fonte Nunito (as fontes pixeladas ficavam difíceis de ler) */
.offline-report .or-head b, .offline-report .or-head small, .offline-report .or-list li span, .theme-gba .offline-report .or-list li span,
.offline-report .or-exp, .offline-report .or-sec, .offline-report .or-mon b, .offline-report .or-mon small, .offline-report .or-more, .offline-report .or-warn, .offline-report .loot-strip span {
  font-family: "Nunito", var(--font); font-weight: 600; letter-spacing: 0; }
.offline-report .or-head b { font-size: 18px; }
.offline-report .or-head small { font-size: 13px; }
.offline-report .or-list li { font-size: 16px; }
.offline-report .or-list li span { text-shadow: 1px 1px 0 #00000088; }
.offline-report .or-exp, .offline-report .or-mon small, .offline-report .or-more, .offline-report .or-warn { font-size: 13px; }
.offline-report .or-sec, .offline-report .or-mon b { font-size: 14px; }
/* Automação: hunt do Auto (escolhida ou a mais próxima) */
.ac-hunt { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; }
.ac-hunt > span:first-child { white-space: nowrap; }
.ac-hunt .ac-hunt-sel { flex: 1; }
.zone-card .zone-auto { margin-left: 6px; }
/* Fly / Teleport: botões ao lado da barra de nível + lista de Centros */
.lvl-row { display: flex; align-items: center; gap: 6px; pointer-events: none; }
.field-moves { display: flex; gap: 4px; pointer-events: auto; }
.fm-btn { position: relative; display: flex; align-items: center; gap: 4px; height: 28px; padding: 0 9px 0 4px; border-radius: 999px; cursor: pointer;
  background: rgba(12,15,22,.88); border: 1px solid var(--hud-line); color: #e8ebf3; font-size: 11px; font-weight: 800; }
.fm-btn img { width: 22px; height: 22px; image-rendering: pixelated; }
.fm-btn:hover { border-color: var(--accent); }
.fm-btn.cd { opacity: .7; }
.fm-btn.cd img { filter: grayscale(1); }
.fm-cd { font-size: 10px; color: #ffd166; font-variant-numeric: tabular-nums; }
.fm-cd:empty { display: none; }
.travel { display: flex; flex-direction: column; gap: 8px; min-width: min(380px, 80vw); }
.travel-cd { font-size: 12px; font-weight: 800; color: #ffd166; }
.travel-list { display: flex; flex-direction: column; gap: 6px; }
.travel-tabs { display: flex; gap: 6px; border-bottom: 2px solid #2f3a52; padding-bottom: 6px; }
.travel-tab { display: flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 8px 8px 0 0; background: #141a27; border: 2px solid #2f3a52; color: #9fb0d0; font: inherit; font-weight: 800; cursor: pointer; }
.travel-tab small { font-size: 10px; padding: 0 6px; border-radius: 8px; background: rgba(255,255,255,.08); }
.travel-tab:hover { color: #e8ebf3; }
.travel-tab.on { background: #1b2232; border-color: var(--accent); color: #fff; }
.theme-gba .travel-tab { background: var(--gba-navy); border-color: var(--gba-line); color: #cfd8ff; font-family: var(--gba-font); }
.theme-gba .travel-tab.on { background: var(--gba-blue-2); color: #fff; }
.travel-opt { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; text-align: left; cursor: pointer;
  background: #1b2232; border: 2px solid #2f3a52; color: #e8ebf3; font: inherit; }
.travel-opt:not(:disabled):hover { border-color: var(--accent); }
.travel-opt:disabled { cursor: not-allowed; }
.travel-opt.locked { opacity: .45; filter: grayscale(.8); }
.travel-opt.here { border-color: #4ade80; }
.travel-ic { font-size: 20px; }
.travel-txt { display: flex; flex-direction: column; min-width: 0; }
.travel-txt small { font-size: 11px; color: #9fb0d0; }
.theme-gba .fm-btn { background: var(--gba-white); border: 2px solid var(--gba-line); box-shadow: inset -2px -2px 0 var(--gba-shadow); color: var(--gba-text); font-family: var(--gba-font); }
.theme-gba .fm-cd { color: #c04818; font-family: var(--gba-num); }
.theme-gba .travel-opt { background: var(--gba-navy); border-color: var(--gba-line); box-shadow: inset 0 0 0 1px var(--gba-blue-2); color: #fff; font-family: var(--gba-font); }

/* ---------- botão Novidades (changelogs e notificações do Discord) ---------- */
.money-pill.news .news-badge { display: none; position: absolute; top: -6px; right: -6px; min-width: 16px; height: 16px; padding: 0 3px; border-radius: 9px; background: #ff3b4e; color: #fff; border: 2px solid #fff; font: 900 10px/12px var(--mono); font-style: normal; text-align: center; box-shadow: 0 0 6px #ff3b4e99; }
.money-pill.news.unread { border-color: #ff6b7a; animation: nw-pulse 1.6s ease-in-out infinite; }
.money-pill.news.unread .news-badge { display: block; }
@keyframes nw-pulse { 0%, 100% { box-shadow: 0 0 0 #ff3b4e00; } 50% { box-shadow: 0 0 10px #ff3b4e88; } }
.modal-box:has(.nw) { width: min(720px, 94vw); }
.nw { display: flex; flex-direction: column; gap: 10px; width: 100%; box-sizing: border-box; }
.nw-tabs { display: flex; gap: 6px; }
.nw-tab { position: relative; flex: 1; padding: 8px 10px; border-radius: 8px; border: 1px solid #ffffff22; background: #ffffff0d; color: inherit; font-weight: 800; cursor: pointer; }
.nw-tab.on { background: #3d7bff33; border-color: #6c9bff; }
.nw-dot { display: inline-grid; place-items: center; margin-left: 6px; width: 16px; height: 16px; border-radius: 50%; background: #ff3b4e; color: #fff; font: 900 10px var(--mono); font-style: normal; vertical-align: middle; }
.nw-list { display: flex; flex-direction: column; gap: 6px; max-height: 62vh; overflow-y: auto; padding-right: 4px; }
.nw-item { width: 100%; box-sizing: border-box; text-align: left; padding: 10px 12px; border-radius: 8px; border: 1px solid #ffffff1a; background: #ffffff08; color: inherit; cursor: pointer; }
.nw-item:hover { background: #ffffff14; }
.nw-item.new { border-color: #ff6b7a88; }
.nw-item-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.nw-item-sub { margin-top: 4px; font-size: 12px; opacity: .75; display: flex; gap: 10px; align-items: center; }
.nw-gift { color: #ffd166; font-weight: 800; } .nw-gift.done { color: #7ff0a4; }
.nw-empty { padding: 24px; text-align: center; }
.nw-back { align-self: flex-start; }
.nw-title { font-size: 18px; font-weight: 900; }
.nw-body { max-height: 62vh; overflow-y: auto; padding-right: 6px; line-height: 1.5; }
.nw-body .nw-reward { margin-top: 14px; }
.nw-item-top b, .nw-title { font-size: 15px; letter-spacing: .2px; }
.nw-title { font-size: 19px; }
.theme-gba .nw-item-top b, .theme-gba .nw-title, .theme-gba .nw-reward-t, .theme-gba .nw-tab { font-family: var(--gba-font); }
.theme-gba .nw-item-top b { font-size: 16px; } .theme-gba .nw-title { font-size: 20px; text-shadow: 2px 2px 0 var(--gba-line, #00000055); }
.nw-body p { margin: 0 0 4px; } .nw-body ul { margin: 4px 0 8px 18px; padding: 0; } .nw-body li { margin: 2px 0; }
.nw-body .nw-h1 { font-size: 17px; font-weight: 900; margin: 10px 0 4px; } .nw-body .nw-h2 { font-size: 15px; font-weight: 900; margin: 8px 0 4px; } .nw-body .nw-h3 { font-weight: 800; margin: 6px 0 2px; }
.nw-body .nw-quote { border-left: 3px solid #ffffff44; padding-left: 8px; opacity: .85; }
.nw-body .nw-gap { height: 8px; } .nw-body code { background: #00000044; padding: 0 4px; border-radius: 4px; } .nw-body a { color: #8cb4ff; }
.nw-end { height: 1px; }
.nw-reward { border: 1px solid #ffd16688; background: linear-gradient(180deg, #ffd1661a, #ffd16608); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.nw-reward.done { border-color: #7ff0a466; background: #7ff0a40d; }
.nw-reward-t { font-weight: 900; color: #ffd166; }
.nw-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.nw-chip { display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px; border-radius: 999px; background: #00000033; font-weight: 700; font-size: 13px; }
.nw-ic { width: 20px; height: 20px; image-rendering: pixelated; object-fit: contain; }
.nw-warn { color: #ffb347; } .nw-adm { border-top: 1px dashed #ffffff22; padding-top: 6px; }
/* ===================== Tutorial do primeiro login (js/tutorial.js) ===================== */
.tut { position: fixed; inset: 0; z-index: 70; pointer-events: none; transition: background .25s, opacity .25s; }
.tut-shade { position: fixed; z-index: 1; background: rgba(4,6,12,.6); opacity: 0; transition: opacity .25s; }
.tut-spot, .tut-arrow { z-index: 3; } .tut-bubble { z-index: 4 !important; }
.tut.shaded .tut-shade { opacity: 1; }
.tut.tut-hidden, .tut.tut-out { opacity: 0; }
.tut-spot { position: fixed; border-radius: 10px; outline: 3px solid var(--accent); outline-offset: 0; box-shadow: 0 0 18px rgba(245,197,24,.55);
  transition: left .25s ease, top .25s ease, width .25s ease, height .25s ease, box-shadow .25s; animation: tut-glow 1.4s ease-in-out infinite; }

.tut-spot.round { border-radius: 50%; }
.tut-spot.hidden, .tut-arrow.hidden { display: none; }
@keyframes tut-glow { 50% { outline-color: #fff3b0; outline-offset: 3px; } }
.tut-arrow { position: fixed; width: 28px; height: 28px; transition: left .25s ease, top .25s ease; }
.tut-arrow::before { content: ""; position: absolute; left: 2px; border-left: 12px solid transparent; border-right: 12px solid transparent; filter: drop-shadow(0 2px 2px rgba(0,0,0,.6)); }
.tut-arrow.down::before { top: 4px; border-top: 20px solid var(--accent); animation: tut-bob-d .7s ease-in-out infinite alternate; }
.tut-arrow.up::before { bottom: 4px; border-bottom: 20px solid var(--accent); animation: tut-bob-u .7s ease-in-out infinite alternate; }
@keyframes tut-bob-d { to { transform: translateY(6px); } }
@keyframes tut-bob-u { to { transform: translateY(-6px); } }
.tut-bubble { position: fixed; width: min(400px, calc(100vw - 20px)); pointer-events: auto; background: #fbf8ee; color: #23263a; border: 3px solid #3a4a6a; border-radius: 12px;
  box-shadow: 0 0 0 2px #fff inset, 0 10px 30px rgba(0,0,0,.5); padding: 10px 12px 9px; transition: left .25s ease, top .25s ease; z-index: 2; }
.tut-bubble.pop { animation: tut-pop .22s ease-out; }
@keyframes tut-pop { from { transform: scale(.94); opacity: .3; } }
.tut-head { display: flex; align-items: center; gap: 8px; margin: -4px 0 2px -4px; }
.tut-head .sprite-box { flex: 0 0 auto; }
.tut-head b { font-family: var(--gba-font, var(--font)); font-size: 15px; color: #3a4a6a; }
.tut-text { margin: 0; min-height: 3.6em; font-size: 14.5px; line-height: 1.45; font-weight: 600; }
.tut-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; }
.tut-dots { display: flex; gap: 4px; } .tut-dots i { width: 7px; height: 7px; border-radius: 50%; background: #c9cdd8; } .tut-dots i.on { background: #e0a800; }
.tut-btns { display: flex; align-items: center; gap: 8px; }
.tut-skip { background: none; border: 0; color: #7a8094; font-size: 11.5px; text-decoration: underline; cursor: pointer; padding: 2px; }
.tut-skip:hover { color: #23263a; }
.tut-gift { display: flex; align-items: center; justify-content: center; gap: 4px; margin-top: 8px; padding: 6px; background: #fff3c4; border: 2px dashed #e0a800; border-radius: 8px; font-weight: 800; }
.tut-gift img { width: 26px; height: 26px; image-rendering: pixelated; } .tut-gift img + img { margin-left: 10px; }
/* batalha de treino */
.tut-battle { position: fixed; left: 50%; top: 56%; transform: translate(-50%, -50%); width: min(560px, calc(100vw - 20px)); pointer-events: auto; z-index: 2;
  background: var(--hud-bg, #121722); border: 2px solid var(--frame-2); border-radius: 12px; box-shadow: 0 14px 40px rgba(0,0,0,.6); overflow: hidden; animation: tb-in .25s ease-out; }
@keyframes tb-in { from { transform: translate(-50%, -50%) scale(.94); opacity: .3; } }
.tut-battle.tut-out { opacity: 0; transition: opacity .2s; }
.tb-tag { position: absolute; top: 8px; left: 8px; z-index: 1; font-size: 10px; font-weight: 900; letter-spacing: 1px; color: #23263a; background: var(--accent); padding: 2px 7px; border-radius: 5px; }
.tb-field { position: relative; height: 210px; background: linear-gradient(180deg, #bfe6f7 0%, #d9f0c8 55%, #a8d888 100%); }
.tb-side { position: absolute; display: flex; align-items: flex-end; gap: 10px; }
.tb-side.foe { right: 16px; top: 18px; flex-direction: row-reverse; align-items: flex-start; }
.tb-side.me { left: 16px; bottom: 6px; }
.tb-info { background: #fbf8ee; color: #23263a; border: 2px solid #3a4a6a; border-radius: 8px; padding: 4px 8px; min-width: 150px; font-size: 12px; }
.tb-info b { font-size: 13px; margin-right: 6px; }
.tb-hp { height: 6px; margin-top: 4px; background: #3d4250; border-radius: 3px; overflow: hidden; }
.tb-hp i { display: block; height: 100%; width: 100%; background: #3ad35b; transition: width .6s ease; } .tb-hp i.mid { background: #e8c443; } .tb-hp i.low { background: #e83e4d; }
.tb-mon { position: relative; width: 112px; height: 112px; display: grid; place-items: end center; }
.tb-mon img { position: relative; width: 112px; height: 112px; image-rendering: pixelated; transition: transform .35s ease, opacity .35s ease; }
.tb-side.me .tb-mon { width: 128px; height: 128px; } .tb-side.me .tb-mon img { width: 128px; height: 128px; }
.tb-plat { position: absolute; bottom: 4px; left: 8%; width: 84%; height: 22px; border-radius: 50%; background: rgba(60,110,40,.45); }
.tb-mon.hit img { animation: tb-hit .45s steps(2) 1; }
@keyframes tb-hit { 0%, 100% { transform: translateX(0); opacity: 1; } 25% { transform: translateX(-6px); opacity: .3; } 50% { transform: translateX(6px); opacity: 1; } 75% { transform: translateX(-4px); opacity: .3; } }
.tb-side.me .tb-mon.lunge img { animation: tb-lunge-me .3s ease-out; } .tb-side.foe .tb-mon.lunge img { animation: tb-lunge-foe .3s ease-out; }
@keyframes tb-lunge-me { 50% { transform: translate(18px, -12px); } } @keyframes tb-lunge-foe { 50% { transform: translate(-18px, 12px); } }
.tb-mon.caught img:not(.tb-throw) { transform: scale(.1); opacity: 0; }
.tb-throw { position: absolute !important; width: 28px !important; height: 28px !important; left: calc(50% - 14px); bottom: 20px; z-index: 2; animation: tb-throw .5s ease-out; }
@keyframes tb-throw { from { transform: translate(-260px, 120px) rotate(-540deg); } }
.tb-throw.wob { animation: tb-wob .5s ease-in-out; }
@keyframes tb-wob { 25% { transform: rotate(-22deg); } 75% { transform: rotate(22deg); } }
.tb-stars { position: absolute; bottom: 52px; left: 0; right: 0; text-align: center; color: #fff6a8; font-size: 18px; text-shadow: 0 0 6px #e0a800; animation: tut-pop .3s ease-out; }
.tb-line { padding: 8px 12px; min-height: 22px; font-weight: 700; font-size: 13.5px; color: #e9edf6; border-top: 2px solid var(--frame-2); }
.tb-row { padding: 0 10px 10px; flex-wrap: wrap; }
@media (max-width: 520px) { .tb-field { height: 180px; } .tb-mon, .tb-mon img, .tb-side.me .tb-mon, .tb-side.me .tb-mon img { width: 84px; height: 84px; } .tb-info { min-width: 120px; } .tut-text { font-size: 13.5px; } }
/* Pokémon acima do limite de obediência (treinador + 10): apagado com cadeado */
.dock-slot.disob .mon-icon { filter: grayscale(1) brightness(.7); }
.dock-slot.disob::after { content: "🔒"; position: absolute; right: 3px; bottom: 12px; font-size: 13px; filter: drop-shadow(0 1px 1px #000); }
/* nota do IV (S–F) ao lado do valor: cores de raridade dos jogos (S dourado/arco-íris ... F cinza) */
.iv-gr { font-weight: 900; font-size: 12px; line-height: 1; font-style: normal; text-align: center; text-shadow: 0 1px 0 #0008; }
.iv-gr.g-S { color: #ffd166; text-shadow: 0 0 6px #ffd166aa, 0 1px 0 #0008; }
.iv-gr.g-A { color: #ff6b6b; } .iv-gr.g-B { color: #ff9f43; } .iv-gr.g-C { color: #ffd93d; }
.iv-gr.g-D { color: #5fd068; } .iv-gr.g-E { color: #5ea3ff; } .iv-gr.g-F { color: #9aa0a8; }
/* IV · nota · (EV) em colunas fixas */
.mc-stats4 .mc-ivev { grid-template-columns: 20px 12px 30px; column-gap: 4px; align-items: baseline; }
.mc-stats4 .mc-ivev .iv-gr { text-align: center; }
.mc-stats4 .mc-h.mc-ivev .mc-iv, .mc-stats4 .mc-h.mc-ivev .mc-ev { color: inherit; }
.ivr-gr { font-weight: 900; font-size: 12px; }
.ivr-gr.g-S { fill: #ffd166; } .ivr-gr.g-A { fill: #ff6b6b; } .ivr-gr.g-B { fill: #ff9f43; } .ivr-gr.g-C { fill: #ffd93d; }
.ivr-gr.g-D { fill: #5fd068; } .ivr-gr.g-E { fill: #5ea3ff; } .ivr-gr.g-F { fill: #9aa0a8; }
/* card de Objetivo do HUD: clicável (abre a lista) */
.hud-card.objective { cursor: pointer; } .hud-card.objective:hover { border-color: var(--accent); }
/* lista de objetivos (objectives.js › openObjectives) */
.objl-sub { margin: 0 0 10px; }
.objl-list { display: flex; flex-direction: column; gap: 6px; max-height: 60vh; overflow: auto; padding-right: 4px; }
.objl-row { display: flex; gap: 10px; align-items: flex-start; padding: 8px 10px; border-radius: 8px; background: #ffffff08; border: 1px solid #ffffff12; }
.objl-row.cur { border-color: var(--accent); background: #f5c51814; }
.objl-row.done { opacity: .6; }
.objl-row.next { opacity: .85; }
.objl-ic { flex: 0 0 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-weight: 900; font-size: 12px; background: #2a3142; color: #c4cee4; }
.objl-row.done .objl-ic { background: #22c55e; color: #fff; } .objl-row.cur .objl-ic { background: var(--accent); color: #1b1f2a; }
.objl-main { flex: 1; min-width: 0; }
.objl-text { font-weight: 700; }
.objl-row.done .objl-text { text-decoration: line-through; }
.objl-prog { display: flex; align-items: center; gap: 8px; margin-top: 5px; font: 700 11px var(--mono); color: #c4d0e8; }
.objl-prog .obj-bar, .dm2-prog .obj-bar { flex: 1; height: 6px; background: #0b0e14; border-radius: 4px; overflow: hidden; }
.objl-prog .obj-bar > div, .dm2-prog .obj-bar > div { height: 100%; background: linear-gradient(90deg, #22c55e, #7ff0a4); }
.objl-rew { font-size: 11px; color: var(--muted, #8fa0c8); margin-top: 4px; }
/* missões diárias (dailymissions.js) */
.money-pill.dmis img { width: 22px; height: 22px; image-rendering: pixelated; }
.dm2 { display: flex; flex-direction: column; gap: 8px; }
.dm2-sub { margin: 0 0 2px; }
.dm2-row, .dm2-bonus { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 10px; background: #ffffff08; border: 1px solid #ffffff14; }
.dm2-row.ready, .dm2-bonus.ready { border-color: #ffd166; box-shadow: 0 0 10px #ffd16644; }
.dm2-row.done, .dm2-bonus.done { opacity: .6; }
.dm2-tier { flex: 0 0 62px; text-align: center; font-size: 11px; font-weight: 900; padding: 4px 0; border-radius: 6px; color: #fff; text-transform: uppercase; letter-spacing: .4px; }
.dm2-row.easy .dm2-tier { background: #22a35a; } .dm2-row.medium .dm2-tier { background: #d98b1a; } .dm2-row.hard .dm2-tier { background: #c43b4b; }
.dm2-bonus { background: linear-gradient(90deg, #f5c51818, #ff9af018); border-style: dashed; border-color: #ffd16688; }
.dm2-main { flex: 1; min-width: 0; }
.dm2-text { font-weight: 800; }
.dm2-prog { display: flex; align-items: center; gap: 8px; margin-top: 5px; font: 700 11px var(--mono); color: #c4d0e8; }
.dm2-rws { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 6px; }
.dm2-rw { display: inline-flex; align-items: center; gap: 3px; font: 800 12px var(--mono); }
.dm2-ic { width: 22px; height: 22px; image-rendering: pixelated; object-fit: contain; }
.dm2-tag.ok { color: #4ade80; font-weight: 800; font-size: 12px; white-space: nowrap; }
.dm2 .btn { white-space: nowrap; }
@media (max-width: 520px) { .dm2-tier { flex-basis: 48px; font-size: 10px; } }
/* Pokémon do Dia: notificação ao entrar no jogo (main.js › dailyMonNotice) */
.dmn { position: fixed; top: 64px; left: 50%; transform: translateX(-50%); z-index: 55; width: min(300px, calc(100vw - 24px)); padding: 10px 12px 12px;
  background: var(--hud-bg, #121722); border: 2px solid #ffd166; border-radius: 12px; box-shadow: 0 0 18px #ffd16655, 0 10px 30px rgba(0,0,0,.5); animation: dmn-in .35s ease-out; }
.dmn.out { opacity: 0; transform: translate(-50%, -12px); transition: opacity .25s, transform .25s; }
@keyframes dmn-in { from { opacity: 0; transform: translate(-50%, -16px); } }
.dmn-x { position: absolute; top: 6px; right: 8px; background: none; border: 0; color: #9aa6c0; cursor: pointer; font-size: 13px; }
.dmn-x:hover { color: #fff; }
.dmn-head { font-size: 11px; font-weight: 900; letter-spacing: .6px; color: #ffd166; text-transform: uppercase; }
.dmn-body { display: flex; gap: 10px; align-items: center; margin: 6px 0 10px; }
.dmn-info { display: flex; flex-direction: column; gap: 3px; align-items: flex-start; }
.dmn-info b { font-size: 15px; }
.dmn-bonus { font: 800 12px var(--mono); color: #7ff0a4; }
.theme-gba .dmn-head { font-family: var(--gba-font); }
/* VIP List (vip.js) */
#panel-vip { display: none; } #panel-vip.active { display: flex; flex-direction: column; gap: 8px; }
.vip-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 13px; }
.vip-on { color: #4ade80; font-weight: 800; }
.vip-add { display: flex; gap: 6px; align-items: center; }
.vip-input { flex: 1; min-width: 0; padding: 7px 10px; border-radius: 8px; border: 1px solid #3a4460; background: #0f131c; color: #fff; font: inherit; }
.vip-ic { font-size: 16px; line-height: 1; }
.vip-ic-btn { flex: 0 0 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; border: 1px solid #3a4460; background: #171c28; cursor: pointer; }
.vip-ic-btn:hover { border-color: var(--accent); }
.vip-picker { display: flex; flex-wrap: wrap; gap: 4px; padding: 6px; border-radius: 8px; background: #0f131c; border: 1px dashed #3a4460; }
.vip-empty { padding: 18px; text-align: center; }
.vip-row { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 8px; background: #ffffff08; border: 1px solid #ffffff10; }
.vip-name { background: none; border: 0; padding: 0; font: 800 15px var(--font); cursor: pointer; text-align: left; }
.vip-row.on .vip-name { color: #3ddc6b; text-shadow: 0 0 6px #3ddc6b55; }
.vip-row.off .vip-name { color: #ff5a5a; }
.vip-name:hover { text-decoration: underline; }
.vip-st { flex: 1; font-size: 11px; color: var(--muted, #8fa0c8); }
.vip-row.on .vip-st { color: #4ade80; }
.vip-x { background: none; border: 1px solid #ff5a5a55; color: #ff8a8a; border-radius: 6px; cursor: pointer; padding: 2px 7px; }
.vip-x:hover { background: #ff5a5a22; }
.theme-gba .vip-name { font-family: var(--gba-font); }
/* Friendlist: menu do nome + abas privadas do chat */
.dock-lbl.dock-lbl-sm { font-size: 8px; letter-spacing: -.2px; }
.fmenu .pmenu-head { display: flex; align-items: center; gap: 6px; }
.fmenu-st { width: 9px; height: 9px; border-radius: 50%; } .fmenu-st.on { background: #3ddc6b; box-shadow: 0 0 6px #3ddc6b; } .fmenu-st.off { background: #ff5a5a; }
.fmenu-btn { display: flex; align-items: center; gap: 8px; }
.fmenu-ic { font-size: 16px; width: 22px; text-align: center; }
.fmenu-img { width: 22px; height: 22px; image-rendering: pixelated; }
.chat-tabs { flex-wrap: wrap; }
.chat-tab.pm-tab { flex: 0 1 auto; display: inline-flex; align-items: center; gap: 4px; max-width: 140px; color: #c9b6ff; }
.chat-tab.pm-tab .pm-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-tab.pm-tab.active { color: #e6dcff; background: #2a2340; }
.pm-dot:empty { display: none; } .pm-dot { font-style: normal; background: #ff4d5e; color: #fff; border-radius: 8px; padding: 0 4px; font-size: 9px; }
.pm-close { opacity: .6; padding: 0 2px; } .pm-close:hover { opacity: 1; color: #ff8a8a; }
.chat-line.pm b { color: #c9b6ff; } .chat-line.pm.mine b { color: #8be9fd; }
/* Friendlist estreita: só ícone, nome e os botões 💬 / perfil */
.win.win-narrow .win-box { width: min(340px, calc(100% - 24px)); height: auto; max-height: calc(100% - 40px); }
.win.win-narrow .win-nav { display: none; }
.win.win-narrow .win-main { overflow-y: auto; }
#panel-vip .vip-row { gap: 6px; padding: 5px 6px; }
#panel-vip .vip-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#panel-vip .vip-st { display: none; }
.vip-act { flex: 0 0 30px; height: 30px; display: grid; place-items: center; border-radius: 7px; border: 1px solid #3a4460; background: #171c28; cursor: pointer; font-size: 15px; padding: 0; }
.vip-act:hover { border-color: var(--accent); background: #1f2636; }
.vip-act img { width: 22px; height: 22px; image-rendering: pixelated; }
#panel-vip .vip-x { flex: 0 0 auto; }
#panel-vip .vip-head { font-size: 12px; }

/* ===================== Marca PokeQuest Idle (logo + paleta na entrada do jogo) ===================== */
:root { --dq-red: #FF4D4D; --dq-yellow: #FFC833; --dq-blue: #3B82F6; --dq-green: #4CAF50; --dq-brown: #8B5E3C; }
.brand-logo { display: block; width: min(560px, 94vw); height: auto; margin: 0 auto 4px; filter: drop-shadow(0 10px 22px rgba(0,0,0,.55)); animation: dq-float 4s ease-in-out infinite; user-select: none; -webkit-user-drag: none; }
.brand-logo.brand-sm { width: min(420px, 90vw); }
.brand-logo.brand-xs { width: min(220px, 50vw); margin: 0; animation: none; }
@keyframes dq-float { 50% { transform: translateY(-6px); } }
@media (prefers-reduced-motion: reduce) { .brand-logo { animation: none; } }
/* cartão de login: faixa nas 4 cores da marca, abas e botão nas cores do logo */
.login-screen .login-card { position: relative; border: 2px solid #2b3550; border-radius: 14px; overflow: hidden; box-shadow: 0 18px 50px rgba(0,0,0,.55); }
.login-screen .login-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px;
  background: linear-gradient(90deg, var(--dq-red) 0 25%, var(--dq-yellow) 25% 50%, var(--dq-blue) 50% 75%, var(--dq-green) 75% 100%); }
.login-screen .login-card .login-tabs .tab.active { color: var(--dq-yellow); border-color: var(--dq-yellow); }
.login-screen .login-card .btn-primary, .login-screen .card .btn-primary { background: linear-gradient(180deg, #5b9bff, var(--dq-blue)); border-color: #2563eb; color: #fff; text-shadow: 0 1px 0 rgba(0,0,0,.35); box-shadow: inset 0 -3px 0 #1d4ed8; }
.login-screen .login-card .btn-primary:hover:not(:disabled), .login-screen .card .btn-primary:hover:not(:disabled) { background: linear-gradient(180deg, #74acff, #4b8ff8); }
.login-screen .field input:focus { border-color: var(--dq-blue); box-shadow: 0 0 0 3px rgba(59,130,246,.25); }
.loading-box .brand-logo { margin-bottom: 18px; }
.loading-box { width: min(420px, 90vw); display: flex; flex-direction: column; align-items: center; }   /* do tamanho do logo (antes 360 px: o logo de 420 vazava só para a direita e ficava torto) */
.loading-box .loading-bar { width: min(360px, 100%); }
.brand-tag { margin: -10px auto 4px; text-align: center; font: 800 13px/1.2 Nunito, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #fff3c4; text-shadow: 0 2px 0 #1b2440, 0 0 12px rgba(0,0,0,.7); }

/* chat em balãozinho (chat.js): fechado = só o balão no canto; aberto = painel com abas Local / Global / Negociações / Log */
.hud-chat:not(.open) { width: auto !important; background: none !important; border: 0 !important; box-shadow: none !important; overflow: visible; }
.chat-bubble { position: relative; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; padding: 0; cursor: pointer;
  background: rgba(12,15,22,.9); border: 2px solid var(--accent); box-shadow: 0 4px 12px rgba(0,0,0,.45); transition: transform .12s; }
.chat-bubble:hover { transform: scale(1.06); }
.chat-bubble .chat-ic { font-size: 22px; line-height: 1; }
.chat-bubble .chat-badge { position: absolute; top: -4px; right: -4px; min-width: 18px; text-align: center; }
.hud-chat.open .chat-bubble { display: none; }
.hud-chat.open { width: 380px; }
.chat-top { display: flex; align-items: flex-end; gap: 4px; padding: 5px 6px 0; }
.chat-top .chat-tabs { flex: 1; min-width: 0; padding: 0; overflow-x: auto; scrollbar-width: none; }
.chat-top .chat-tabs::-webkit-scrollbar { display: none; }
.chat-top .chat-tab { flex: 0 0 auto; padding: 4px 9px; white-space: nowrap; position: relative; }
.chat-close { flex-shrink: 0; width: 26px; height: 26px; margin-bottom: 3px; border-radius: 6px; background: #3a1d22; border: 1px solid #6b2a33; color: #ffb3bb; font-weight: 800; cursor: pointer; }
.chat-close:hover { background: #5a2530; }
.ch-dot { font-style: normal; margin-left: 4px; background: var(--red); color: #fff; border-radius: 999px; font-size: 9px; font-weight: 800; padding: 0 5px; }
.ch-dot:empty { display: none; }
.chat-tab[data-ctab="trade"].active { color: #7ff0a4; }
.chat-tab[data-ctab="local"].active { color: #8be9fd; }
.theme-gba .chat-bubble { background: var(--gba-navy); border-color: var(--gba-line); box-shadow: inset 0 0 0 2px var(--gba-blue-2), 0 4px 12px rgba(0,0,0,.4); }

/* objetivos saíram da tela: ficam na aba "Objetivos" do Diário de missões (questlog.js) */
#hud-objective { display: none !important; }
.trk-head { display: flex; align-items: center; gap: 6px; }
.trk-head small { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.trk-close { flex-shrink: 0; width: 20px; height: 20px; padding: 0; border-radius: 5px; background: rgba(0,0,0,.25); border: 1px solid rgba(255,255,255,.25); color: #ffb3bb; font: 800 11px/1 var(--font); cursor: pointer; }
.trk-close:hover { background: #5a2530; border-color: #ff8a95; }
.ql-tabs { margin: -4px 0 10px; }
.ql-tabs .tab { cursor: pointer; }

/* Pokémon do Dia: recorte do mapa com o sprite dele em cada hunt onde aparece (main.js dailyMonMap) */
.dmm { position: relative; margin: 8px 0; border-radius: 8px; overflow: hidden; border: 2px solid #3a4352; background: #06070b; }
.dmm-cv { display: block; width: 100%; height: auto; image-rendering: pixelated; }
.dmm-mon { position: absolute; transform: translate(-50%, -62%); display: flex; flex-direction: column; align-items: center; padding: 0; background: none; border: 0; cursor: pointer; filter: drop-shadow(0 2px 3px rgba(0,0,0,.8)); }
.dmm-mon:hover { transform: translate(-50%, -62%) scale(1.12); }
.dmm-tag { margin-top: -4px; padding: 1px 6px; border-radius: 6px; background: rgba(12,15,22,.85); border: 1px solid #ffd166; color: #ffe9a8; font: 800 10px var(--font); white-space: nowrap; }
.dmm-me { position: absolute; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: #ff4d5e; border: 2px solid #fff; box-shadow: 0 0 0 0 rgba(255,77,94,.7); animation: dmm-pulse 1.4s ease-out infinite; }
@keyframes dmm-pulse { 70% { box-shadow: 0 0 0 9px rgba(255,77,94,0); } 100% { box-shadow: 0 0 0 0 rgba(255,77,94,0); } }
@media (prefers-reduced-motion: reduce) { .dmm-me { animation: none; } }
.dmn .dmm { margin: 6px 0 8px; }

/* ===================== Guildas (guild.js) ===================== */
#panel-guild.active { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.gd { --gd-card: #1a2131; --gd-line: #2c3650; --gd-gold: #f2c14e; display: flex; flex-direction: column; gap: 10px; flex: 1; min-height: 0; }
.gd-empty { padding: 26px 12px; text-align: center; color: var(--muted); }
.gd-scroll { overflow-y: auto; min-height: 0; }
.gd-head { display: flex; align-items: center; gap: 12px; }
.gd-htxt { flex: 1; min-width: 0; }
.gd-htxt h2 { margin: 0; font-size: 20px; font-weight: 900; letter-spacing: .5px; text-transform: uppercase; display: flex; align-items: center; gap: 8px; }
.gd-htxt small { display: block; color: var(--text-2); }
.gd-motto { color: var(--gd-gold) !important; font-weight: 700; }
.gd-lv { font-size: 11px; font-weight: 800; color: var(--gd-gold); background: rgba(242,193,78,.12); border: 1px solid rgba(242,193,78,.4); border-radius: 999px; padding: 1px 8px; text-transform: none; letter-spacing: 0; }
.gd-emblem { flex-shrink: 0; display: grid; place-items: center; border-radius: 12px; background: radial-gradient(circle at 50% 30%, var(--gc), #10131b 120%); border: 2px solid var(--gc); box-shadow: 0 2px 8px rgba(0,0,0,.4); }
.gd-stats { display: grid; grid-template-columns: 1.6fr 1fr 1.3fr 1.2fr 1fr; background: var(--gd-card); border: 1px solid var(--gd-line); border-radius: 10px; }
.gd-stat { display: flex; align-items: center; gap: 8px; padding: 9px 12px; min-width: 0; border-left: 1px solid var(--gd-line); }
.gd-stat:first-child { border-left: 0; }
.gd-stat b { display: block; font-size: 15px; font-weight: 800; white-space: nowrap; }
.gd-stat small { display: block; font-size: 11px; color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gd-leader b { font-size: 13px; overflow: hidden; text-overflow: ellipsis; }
.gd-crown { color: var(--gd-gold); font-size: 18px; }
.gd-sic { font-size: 20px; }
.gd-cur { display: inline-flex; align-items: center; gap: 4px; font-weight: 800; color: var(--gd-gold); white-space: nowrap; }
.gd-cur.gems { color: #8fd8ff; }
.gd-cur img { width: 16px; height: 16px; image-rendering: pixelated; }
.gd-tabs, .gd-subs { display: flex; gap: 6px; flex-wrap: wrap; }
.gd-tab, .gd-sub { position: relative; display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: 8px; cursor: pointer; font: 700 13px var(--font); color: #cfd6e6; background: var(--gd-card); border: 1px solid var(--gd-line); }
.gd-tab:hover, .gd-sub:hover { border-color: #46557a; }
.gd-tab.on, .gd-sub.on { color: var(--gd-gold); border-color: var(--gd-gold); background: linear-gradient(180deg, rgba(242,193,78,.16), rgba(242,193,78,.04)); }
.gd-tabs { padding-bottom: 8px; border-bottom: 1px solid var(--gd-line); }
.gd-badge { font-style: normal; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: #e04848; color: #fff; font-size: 11px; font-weight: 800; display: inline-grid; place-items: center; }
.gd-n { font-size: 11px; background: rgba(255,255,255,.1); border-radius: 999px; padding: 1px 7px; }
.gd-pane { display: flex; flex-direction: column; gap: 8px; flex: 1; min-height: 0; }
.gd-bar { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; align-items: center; }
.gd-filter { display: flex; gap: 6px; flex: 0 1 380px; }
.gd-input { flex: 1; min-width: 0; padding: 9px 12px; border-radius: 8px; background: #0f1420; border: 1px solid var(--gd-line, #2c3650); color: var(--text); font: 600 14px var(--font); }
.gd-input:focus { outline: none; border-color: #f2c14e; }
.gd-num { max-width: 200px; }
.gd-select { padding: 8px 10px; border-radius: 8px; background: #0f1420; border: 1px solid var(--gd-line); color: var(--text); font: 600 13px var(--font); }
.gd-thead, .gd-row { display: grid; grid-template-columns: 34px 40px minmax(0, 1fr) 130px 64px 100px 130px; align-items: center; gap: 6px; }
.gd-thead { padding: 0 12px; font-size: 11px; font-weight: 800; color: var(--text-2); text-transform: uppercase; letter-spacing: .4px; }
.gd-thead .gd-c-ct { color: var(--gd-gold); }
.gd-rows { display: flex; flex-direction: column; gap: 5px; flex: 1; padding-right: 3px; }
.gd-row { padding: 7px 12px; background: var(--gd-card); border: 1px solid var(--gd-line); border-radius: 8px; }
.gd-row.me { border-left: 3px solid #4cd07a; }
.gd-c-n { color: var(--text-2); font-weight: 700; text-align: center; }
.gd-c-name { min-width: 0; }
.gd-c-name b { display: block; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gd-c-name small { display: block; font-size: 11px; color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gd-c-role, .gd-c-lv { text-align: center; }
.gd-c-lv { font-weight: 800; }
.gd-c-ct { text-align: right; font-weight: 800; color: var(--gd-gold); }
.gd-c-st { font-size: 11px; color: var(--muted); white-space: nowrap; }
.gd-c-st.on { color: #4cd07a; }
.gd-role { width: 100%; padding: 3px 8px; border-radius: 999px; font: 700 11px var(--font); cursor: pointer; background: transparent; color: #cfd6e6; border: 1px solid #5a6684; }
.gd-role.r-leader { color: var(--gd-gold); border-color: var(--gd-gold); background: rgba(242,193,78,.1); }
.gd-role.r-elite { color: #ffd76a; border-color: #b8913a; background: rgba(242,193,78,.06); }
.gd-role.r-gym { color: #9fd3ff; border-color: #4a7ab0; }
.gd-role:hover { filter: brightness(1.25); }
.gd-app { grid-template-columns: 40px minmax(0, 1fr) 60px 70px auto; }
.gd-app-btns { display: flex; gap: 6px; }
.gd-mm { display: flex; flex-direction: column; gap: 8px; min-width: 260px; }
.gd-mm-info { display: flex; gap: 10px; align-items: center; margin-bottom: 4px; }
.gd-mm-info small { display: block; color: var(--text-2); }
.gd-foot { display: flex; justify-content: flex-end; gap: 8px; padding-top: 8px; border-top: 1px solid var(--gd-line); }
.gd-x { background: none; border: 0; color: #ff9aa5; cursor: pointer; font-weight: 800; padding: 0 4px; }
.gd-tag { display: inline-block; font-size: 12px; font-weight: 700; color: #9fe3b0; padding: 4px 10px; border-radius: 999px; border: 1px solid #3c7a50; }
.gd-tag.off { color: var(--muted); border-color: var(--gd-line); }
.gd-lbl { font-size: 11px; font-weight: 800; color: var(--text-2); text-transform: uppercase; letter-spacing: .5px; margin-top: 4px; }
/* lobby */
.gd-lobby-top { display: flex; gap: 10px; align-items: stretch; flex-wrap: wrap; }
.gd-search { display: flex; gap: 6px; flex: 1 1 320px; }
.gd-create-btn { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 22px; }
.gd-create-btn b { font-size: 15px; letter-spacing: 1px; }
.gd-create-btn small { display: flex; gap: 4px; align-items: center; font-size: 11px; }
.gd-create-btn .gd-cur { color: inherit; }
.gd-myapps { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; font-size: 13px; }
.gd-chip { display: inline-flex; align-items: center; gap: 2px; padding: 3px 4px 3px 10px; border-radius: 999px; background: var(--gd-card); border: 1px solid var(--gd-line); }
.gd-glist { display: flex; flex-direction: column; gap: 6px; flex: 1; }
.gd-gcard { display: flex; align-items: center; gap: 12px; padding: 10px 12px; background: var(--gd-card); border: 1px solid var(--gd-line); border-radius: 10px; }
.gd-gmain { flex: 1; min-width: 0; }
.gd-gname { font-weight: 900; font-size: 15px; display: flex; gap: 8px; align-items: center; }
.gd-gdesc { color: var(--gd-gold); font-size: 12px; font-weight: 600; }
.gd-gmeta { color: var(--text-2); font-size: 12px; }
.gd-create { display: flex; flex-direction: column; gap: 8px; width: min(460px, 82vw); }
.gd-create-prev { display: flex; gap: 12px; align-items: center; padding: 10px; border-radius: 10px; background: #181c26; }
.gd-create-prev b { display: block; font-size: 16px; text-transform: uppercase; }
.gd-create-prev small { color: #f2c14e; }
.gd-emb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(44px, 1fr)); gap: 4px; }
.gd-emb { height: 44px; display: grid; place-items: center; border-radius: 8px; background: #0f1420; border: 1px solid #2c3650; cursor: pointer; }
.gd-emb.sel { border-color: #f2c14e; background: rgba(242,193,78,.15); }
.gd-colors { display: flex; gap: 6px; flex-wrap: wrap; }
.gd-color { width: 28px; height: 28px; border-radius: 50%; border: 2px solid rgba(255,255,255,.2); cursor: pointer; }
.gd-color.sel { border-color: #fff; box-shadow: 0 0 0 2px #f2c14e; }
.gd-cost { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; font-weight: 700; }
.gd-cost small { color: var(--muted); }
/* mural */
.gd-wall { display: flex; flex-direction: column; gap: 8px; flex: 1; min-height: 0; }
.gd-wall > .gd-search { flex: none; }
.gd-posts { display: flex; flex-direction: column; gap: 6px; flex: 1; }
.gd-post { padding: 8px 12px; background: var(--gd-card); border: 1px solid var(--gd-line); border-radius: 8px; }
.gd-post-h { display: flex; gap: 8px; align-items: baseline; }
.gd-post-h b { color: var(--gd-gold); }
.gd-post-h small { color: var(--muted); flex: 1; }
.gd-post-t { margin-top: 2px; overflow-wrap: anywhere; }
/* boss */
.gd-boss { gap: 10px; }
.gd-boss-card { display: flex; gap: 18px; align-items: center; padding: 14px; border-radius: 12px; background: radial-gradient(400px 200px at 15% 50%, rgba(224,72,72,.22), transparent 70%), var(--gd-card); border: 1px solid var(--gd-line); }
.gd-boss-img { width: 160px; height: 160px; image-rendering: pixelated; flex-shrink: 0; filter: drop-shadow(0 6px 10px rgba(0,0,0,.5)); animation: gd-float 2.4s ease-in-out infinite; }
.gd-boss-img.dead { filter: grayscale(1) brightness(.6); animation: none; }
@keyframes gd-float { 50% { transform: translateY(-6px); } }
@media (prefers-reduced-motion: reduce) { .gd-boss-img { animation: none; } }
.gd-boss-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 7px; }
.gd-boss-info h3 { margin: 0; font-size: 20px; display: flex; align-items: center; gap: 8px; }
.gd-hp, .gd-xp { position: relative; height: 20px; border-radius: 6px; background: #0b0f18; border: 1px solid #39435c; overflow: hidden; }
.gd-hp > div { height: 100%; background: linear-gradient(90deg, #e04848, #ff8a5a); transition: width .4s; }
.gd-xp > div { height: 100%; background: linear-gradient(90deg, #3aa0d8, #7ad0ff); }
.gd-hp span, .gd-xp span { position: absolute; inset: 0; display: grid; place-items: center; font-size: 12px; font-weight: 800; text-shadow: 0 1px 2px #000; }
.gd-rw { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: 13px; }
.gd-rw-it { display: inline-flex; align-items: center; gap: 3px; font-weight: 700; }
.gd-rw-it img { width: 22px; height: 22px; }
.gd-boss-btn { align-self: flex-start; padding: 10px 26px; font-size: 15px; }
.gd-boss-done { font-weight: 700; color: #9fe3b0; }
.gd-boss-res, .gd-boss-top { padding: 10px 12px; background: var(--gd-card); border: 1px solid var(--gd-line); border-radius: 10px; display: flex; flex-direction: column; gap: 4px; }
.gd-boss-res > b { color: var(--gd-gold); font-size: 15px; }
.gd-boss-line { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto 90px; gap: 8px; align-items: center; padding: 2px 4px; border-radius: 6px; }
.gd-boss-line.me { background: rgba(76,208,122,.1); }
.gd-boss-line small { color: var(--text-2); }
.gd-boss-line b { text-align: right; color: var(--gd-gold); }
/* sede */
.gd-glevel { display: flex; flex-direction: column; gap: 6px; padding: 12px; background: var(--gd-card); border: 1px solid var(--gd-line); border-radius: 10px; }
.gd-upgs { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; }
.gd-upg { display: flex; flex-direction: column; gap: 6px; padding: 12px; background: var(--gd-card); border: 1px solid var(--gd-line); border-radius: 10px; }
.gd-upg small { color: var(--text-2); flex: 1; }
.gd-upg-h { display: flex; justify-content: space-between; align-items: center; }
.gd-pips { display: flex; gap: 3px; }
.gd-pips i { flex: 1; height: 6px; border-radius: 3px; background: #2a3348; }
.gd-pips i.on { background: var(--gd-gold); }
.gd-upg-f { display: flex; justify-content: space-between; align-items: center; gap: 6px; }
.gd-upg-f > span { display: flex; gap: 8px; flex-wrap: wrap; }
.gd-settings { display: flex; flex-direction: column; gap: 8px; padding: 12px; margin-top: 8px; background: var(--gd-card); border: 1px solid var(--gd-line); border-radius: 10px; }
.gd-set-row { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }
.gd-set-row label { display: flex; gap: 6px; align-items: center; }
.gd-set-row .gd-input { width: 80px; flex: none; }
.gd-settings > .btn { align-self: flex-start; }
/* doação */
.gd-don { display: grid; grid-template-columns: 1.2fr 1fr; gap: 10px; }
.gd-don-box { display: flex; flex-direction: column; gap: 8px; padding: 12px; background: var(--gd-card); border: 1px solid var(--gd-line); border-radius: 10px; }
/* aba Boss: duas colunas (boss + dificuldade | ranking), tudo na tela */
.gb-bosspane { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 8px; align-items: stretch; overflow-y: auto; min-height: 0; }
.gb-bcol { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.gb-bosspane .gd-boss-top { margin: 0; padding: 8px 10px; }
.gb-bright { overflow-y: auto; min-height: 0; max-height: 100%; }   /* ranking longo: rola só esta coluna */
.gb-bcard { gap: 12px; padding: 10px 12px; }
.gb-bcard .gd-boss-img { width: 96px; height: 96px; }
.gb-bcard .gd-boss-info { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.gb-btitle { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; } .gb-btitle > b { font-size: 18px; }
.gb-bcard .gb-total { padding: 4px 10px; } .gb-bcard .gb-total b { font-size: 13px; }
.gb-bcard small.muted { font-size: 11px; line-height: 1.35; }
.gb-brow { align-items: center; gap: 10px; }
.gb-bosspane .gb-diffbox { gap: 6px; }
.gb-bosspane .gb-diff { padding: 4px; }
body.mobile .gb-bosspane { grid-template-columns: 1fr; }
/* boss da guilda: dificuldade e atributos do boss */
.gb-diffbox { display: flex; flex-direction: column; gap: 8px; }
.gb-diffs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.gb-diff { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 6px 4px; border-radius: 10px; border: 2px solid rgba(255,255,255,.1); background: rgba(255,255,255,.04); color: inherit; font: inherit; cursor: pointer; }
.gb-diff small { font-size: 10px; opacity: .8; }
.gb-diff-facil b { color: #69db7c; } .gb-diff-normal b { color: #74c0fc; } .gb-diff-dificil b { color: #ffa94d; } .gb-diff-insano b { color: #ff6b6b; }
.gb-diff.on { background: rgba(255,255,255,.1); }
.gb-diff-facil.on { border-color: #69db7c; } .gb-diff-normal.on { border-color: #74c0fc; } .gb-diff-dificil.on { border-color: #ffa94d; } .gb-diff-insano.on { border-color: #ff6b6b; }
.gb-diffs-sm { grid-template-columns: auto repeat(4, minmax(0, 1fr)); align-items: center; flex: none; }
.gb-diffs-sm .gb-diff { padding: 3px 4px; flex-direction: row; gap: 5px; justify-content: center; }
.gb-stats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 5px; }
.gb-stat { display: flex; flex-direction: column; align-items: center; padding: 4px 2px; border-radius: 8px; background: rgba(0,0,0,.25); }
.gb-stat small { font-size: 10px; opacity: .7; } .gb-stat b { font-size: 14px; }
.gb-stat.up b { color: #ffa94d; } .gb-stat.down b { color: #69db7c; }
.gb-bmoves { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.gb-bmove { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 800; color: #fff; text-shadow: 0 1px 0 rgba(0,0,0,.4); }
body.mobile .gb-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* perfil: escolher a cor do nome (só as compradas) */
.ph-ncpick { display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 96px; padding: 8px 10px; border-radius: 10px; border: 2px solid rgba(255,255,255,.1); background: rgba(0,0,0,.3); color: inherit; font: inherit; cursor: pointer; }
.ph-ncpick b { font-size: 14px; text-shadow: 0 0 3px #000, 0 0 2px #000; }
.ph-ncpick small { font-size: 11px; opacity: .8; }
.ph-ncpick.on { border-color: #ffd866; }
/* Loja da guilda: "Para a sede" / "Para você" (loja pessoal com contribuição) */
.gd-shopmode { margin-bottom: 4px; }
.gd-ps-it.on { border-color: #4ade80; }
.gd-ps-prev { width: 64px; min-height: 40px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; border-radius: 8px; background: rgba(0,0,0,.25); overflow: hidden; }
.gd-ps-name { font-size: 12px; text-shadow: 0 0 3px #000, 0 0 2px #000; white-space: nowrap; max-width: 60px; overflow: hidden; text-overflow: ellipsis; }
.gd-ps-title { font-size: 10px; font-weight: 800; color: #ffd866; text-align: center; padding: 0 3px; }
.gd-ps-banner { width: 100%; height: 40px; display: block; }
.gd-ps-fx { font-size: 16px; letter-spacing: 1px; }
.gd-ps-it .green { color: #4ade80; font-weight: 800; }
/* aba Doação: gold/diamantes e Pokémon lado a lado; a semana embaixo; espaços menores */
.gd-donpane .gd-don { grid-template-columns: 1fr 1fr; gap: 8px; }
.gd-donpane .gd-don-box { gap: 6px; padding: 10px; }
.gd-donpane .gd-lbl { margin: 0; }
.gd-donpane .gd-don-week { margin-top: 8px; }
.gd-don-weekhead { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
/* doar Pokémon */
.gd-mondon-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.gd-mondon-head .gd-lbl { margin: 0; } .gd-mondon-head .gd-input { margin-left: auto; flex: 1 1 120px; min-width: 0; padding: 6px 10px; }
.gd-mondon-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 5px; max-height: 172px; overflow-y: auto; padding: 4px; border-radius: 8px; background: rgba(255,255,255,.03); }
.gd-mondon-mon { position: relative; display: flex; flex-direction: column; align-items: center; padding: 4px 2px; border-radius: 8px; border: 1px solid transparent; background: rgba(255,255,255,.05); color: inherit; font: inherit; cursor: pointer; }
.gd-mondon-mon:hover:not(:disabled) { border-color: #ffd866; }
.gd-mondon-mon:disabled { opacity: .45; cursor: not-allowed; }
.gd-mondon-mon.shiny { background: rgba(255,154,240,.1); }
.gd-mondon-mon small { font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.gd-mondon-mon em { position: absolute; top: 2px; right: 3px; font-style: normal; font-size: 8px; font-weight: 800; color: #8be9fd; }
.gd-mondon-filters { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.gd-mondon-filters select.gd-input { flex: 1 1 110px; min-width: 96px; padding: 4px 6px; font-size: 12px; }
.gd-mondon-safe { display: flex; align-items: center; gap: 4px; font-size: 11px; opacity: .85; cursor: pointer; white-space: nowrap; }
.gd-mondon-mon.sel { border-color: #f87171; background: rgba(248,113,113,.18); }
.gd-mondon-check { position: absolute; top: 2px; left: 3px; font-style: normal; font-size: 11px; font-weight: 900; color: #fca5a5; }
.gd-mondon-act { display: flex; flex-wrap: wrap; gap: 6px; } .gd-mondon-act .btn-danger { margin-left: auto; }
.gd-mondon-qlist { display: flex; flex-direction: column; gap: 4px; max-height: min(320px, 50vh); overflow-y: auto; }
.gd-mondon-qrow { display: flex; align-items: center; gap: 8px; padding: 3px 6px; border-radius: 8px; background: rgba(255,255,255,.04); }
.gd-mondon-qrow > div { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.gd-mondon-qrow.bad { opacity: .6; }
.gd-mondon-qpts { font-weight: 800; color: #ffd866; }
.gd-mondon-q { display: flex; flex-direction: column; gap: 8px; min-width: min(380px, 80vw); }
.gd-mondon-qhead { display: flex; align-items: center; gap: 12px; } .gd-mondon-qhead b { font-size: 16px; }
.gd-mondon-val { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 4px; font-size: 13px; font-weight: 800; color: #ffd866; }
.gd-don-row { display: flex; gap: 6px; flex-wrap: wrap; }
.gd-don-have { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.gd-don-prev { color: var(--gd-gold); font-weight: 700; min-height: 16px; }
.gd-don-me { font-weight: 700; }
/* cofre */
.gd-vault-top { display: flex; gap: 24px; flex-wrap: wrap; padding: 12px; background: var(--gd-card); border: 1px solid var(--gd-line); border-radius: 10px; }
.gd-vault-bal { display: flex; gap: 14px; font-size: 18px; font-weight: 800; }
.gd-vault-bal .gd-cur img { width: 22px; height: 22px; }
.gd-shop { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 6px; }
.gd-shop-it { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: var(--gd-card); border: 1px solid var(--gd-line); border-radius: 8px; }
.gd-shop-it > div { flex: 1; min-width: 0; }
.gd-shop-it b { display: block; font-size: 13px; }
.gd-shop-it small { color: var(--gd-gold); font-weight: 700; }
.gd-shop-it.locked { opacity: .5; }
.gd-shop-it.locked small { color: var(--muted); }
.gd-shop-it img { width: 28px; height: 28px; }
.gd-log { display: flex; flex-direction: column; gap: 3px; }
.gd-log-l { display: grid; grid-template-columns: 22px 1fr auto; gap: 6px; font-size: 13px; padding: 4px 8px; border-radius: 6px; background: rgba(255,255,255,.03); }
.gd-log-l small { color: var(--muted); }
/* guildas: cofre (rankings de doação) e cargos configuráveis */
.gd-vbox { display: flex; flex-direction: column; gap: 4px; flex: 1 1 200px; min-width: 0; }
.gd-dhead, .gd-drow { display: grid; grid-template-columns: 40px minmax(0, 1fr) 130px 100px 100px 80px; align-items: center; gap: 6px; }
.gd-dhead { padding: 0 12px; font-size: 11px; font-weight: 800; color: var(--text-2); text-transform: uppercase; letter-spacing: .4px; }
.gd-drow { padding: 7px 12px; background: var(--gd-card); border: 1px solid var(--gd-line); border-radius: 8px; }
.gd-drow.top { border-color: rgba(242,193,78,.45); background: linear-gradient(90deg, rgba(242,193,78,.1), var(--gd-card) 40%); }
.gd-drow.me { border-left: 3px solid #4cd07a; }
.gd-drow .gd-c-n { font-size: 16px; }
.gd-d-gold, .gd-d-gems, .gd-d-n, .gd-d-pts { text-align: right; white-space: nowrap; }
.gd-d-n { font-size: 12px; color: var(--text-2); }
.gd-d-pts { color: var(--gd-gold); font-weight: 900; }
.gd-left { margin-left: 6px; font-size: 10px; font-weight: 700; color: var(--muted); border: 1px solid var(--gd-line); border-radius: 999px; padding: 0 6px; }
.gd-role.r-member { color: #cfd6e6; }
span.gd-role { display: inline-block; width: auto; cursor: default; }
.gd-roles { display: flex; flex-direction: column; gap: 8px; flex: 1; }
.gd-rolecard { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; background: var(--gd-card); border: 1px solid var(--gd-line); border-radius: 10px; }
.gd-rolehead { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.gd-rolehead > small { color: var(--text-2); }
.gd-rpos { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 12px; background: #0f1420; border: 1px solid var(--gd-line); color: var(--gd-gold); }
.gd-rname { flex: 0 1 200px; }
.gd-rmax { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-2); }
.gd-rmax .gd-input { width: 70px; flex: none; padding: 6px 8px; }
.gd-rbtns { display: flex; gap: 4px; margin-left: auto; }
.gd-rolehead > .gd-tag { margin-left: auto; }
.gd-perms { display: flex; flex-wrap: wrap; gap: 5px; }
.gd-perm { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; padding: 4px 9px; border-radius: 999px; color: var(--muted); background: #0f1420; border: 1px solid var(--gd-line); }
.gd-perm.on { color: #9fe3b0; border-color: #3c7a50; background: rgba(76,208,122,.08); }
.gd-perm-edit { cursor: pointer; user-select: none; }
.gd-perm-edit.locked { cursor: default; opacity: .8; }
.gd-perm-edit input { margin: 0; accent-color: #4cd07a; }
.gd-rfoot { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; padding-bottom: 4px; }

/* ===================== Painel do GM (/gm, gm.js) ===================== */
.modal-box:has(.gm) { width: min(820px, calc(100vw - 24px)); max-width: none; }
.gm { display: flex; gap: 12px; width: 100%; min-height: 380px; max-height: 70vh; }
.gm-menu { display: flex; flex-direction: column; gap: 4px; width: 190px; flex-shrink: 0; }
.gm-tab { display: flex; align-items: center; gap: 8px; padding: 9px 12px; border-radius: 8px; cursor: pointer; text-align: left; font: 700 13px var(--font); color: #cfd6e6; background: #1a2131; border: 1px solid #2c3650; }
.gm-tab span { width: 20px; text-align: center; }
.gm-tab:hover { border-color: #46557a; }
.gm-tab.on { color: #f2c14e; border-color: #f2c14e; background: linear-gradient(90deg, rgba(242,193,78,.16), rgba(242,193,78,.03)); }
.gm-body { flex: 1; min-width: 0; overflow-y: auto; padding-right: 4px; }
.gm-form { display: flex; flex-direction: column; gap: 10px; }
.gm-form h3 { margin: 0; font-size: 17px; }
.gm-row { display: flex; flex-direction: column; gap: 5px; }
.gm-row2 { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; }
.gm-row2 > .gm-row { flex: 1 1 140px; }
.gm-lbl { font-size: 11px; font-weight: 800; color: var(--text-2); text-transform: uppercase; letter-spacing: .5px; }
.gm-input { width: 100%; min-width: 0; padding: 8px 10px; border-radius: 8px; background: #0f1420; border: 1px solid #2c3650; color: var(--text); font: 600 14px var(--font); }
.gm-input:focus { outline: none; border-color: #f2c14e; }
.gm-num { max-width: 180px; }
.gm-target, .gm-pick { display: flex; gap: 6px; }
.gm-target .gm-input { flex: 1; width: auto; }
.gm-pick > * { flex: 1; }
.gm-presets { display: flex; gap: 6px; flex-wrap: wrap; }
.gm-check { display: flex; align-items: center; gap: 6px; font-weight: 700; cursor: pointer; padding-bottom: 8px; }
.gm-mon-prev { display: flex; align-items: center; gap: 10px; padding: 6px 10px; border-radius: 8px; background: #1a2131; border: 1px solid #2c3650; }
.gm-mon-prev img { width: 32px; height: 32px; }
.gm-ivs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.gm-ivs label { display: flex; flex-direction: column; gap: 2px; }
.gm-ivs small { font-size: 11px; color: var(--text-2); }
.gm-ivs .gm-input { max-width: none; padding: 6px; text-align: center; }
.gm-apply { align-self: flex-start; padding: 10px 32px; font-size: 15px; }
.gm-log { display: flex; flex-direction: column; gap: 3px; }
.gm-log-l { display: grid; grid-template-columns: 90px auto 1fr; gap: 8px; font-size: 13px; padding: 5px 8px; border-radius: 6px; background: rgba(255,255,255,.03); }
.gm-log-l small { color: var(--muted); }
.gm-log-l b { color: #f2c14e; }
body.mobile .gm { flex-direction: column; width: 100%; max-height: none; }
body.mobile .gm-menu { width: auto; flex-direction: row; flex-wrap: wrap; }
body.mobile .gm-tab { flex: 1 1 45%; padding: 7px 8px; font-size: 12px; }
body.mobile .gm-ivs { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* ===================== Sede da guilda (guildbase.js) ===================== */
.btn.btn-green, .theme-gba .btn.btn-green { background: linear-gradient(180deg, #2f9e57, #237a43); border-color: #4cd07a; color: #fff; }
.btn-green:hover { filter: brightness(1.1); }
#base-hud { position: absolute; bottom: 160px; left: 50%; transform: translateX(-50%); z-index: 6; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: center;
  max-width: min(640px, calc(100% - 24px)); padding: 8px 12px; border-radius: 12px; background: rgba(12,15,22,.9); border: 1px solid rgba(242,193,78,.45); box-shadow: 0 6px 18px rgba(0,0,0,.45); }
#base-hud .bh-title { font-weight: 900; color: #f2c14e; font-size: 13px; }
.bh-decor { flex-basis: 100%; display: flex; flex-direction: column; gap: 6px; }
.bh-decor > small { color: #cfd6e6; text-align: center; }
.bh-items { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; max-height: 160px; overflow-y: auto; }
.bh-item { position: relative; width: 56px; height: 56px; display: grid; place-items: center; border-radius: 8px; cursor: pointer; background: #1a2131; border: 1px solid #2c3650; }
.bh-item.on { border-color: #f2c14e; background: rgba(242,193,78,.18); }
.bh-item em { position: absolute; right: 3px; bottom: 2px; font-style: normal; font-size: 11px; font-weight: 800; color: #fff; text-shadow: 0 1px 2px #000; }
canvas.gd-movel { image-rendering: pixelated; height: auto; display: block; }
.gd-shop:has(.gd-movel-it) { grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); }
.gd-movel-box { width: 52px; height: 52px; display: grid; place-items: center; flex-shrink: 0; border-radius: 8px; background: #0f1420; }
.gd-movel-it small.gd-movel-n { display: block; color: #9fe3b0; font-weight: 600; }
.gd-basecard .btn { align-self: flex-start; }
body.mobile #base-hud { bottom: auto; top: 64px; }

/* névoa da Floresta de Viridian (main.js: inFog): escurece a tela, mais nas bordas */
.forest-fog { position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity 1.2s ease;
  background: radial-gradient(ellipse at 50% 45%, rgba(4,14,8,.22) 0%, rgba(4,14,8,.38) 45%, rgba(2,8,4,.62) 100%); }
.forest-fog.on { opacity: 1; }
#base-hud .bh-hint { color: #c9b8ff; font-weight: 700; }

/* ===================== PC (panels.js renderPC): equipe + caixas + ações, arrastar para trocar ===================== */
.pcx { --pc-card: #1a2131; --pc-line: #2c3650; display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 12px; align-items: start; }
.pcx-main { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.pcx-head { display: flex; align-items: center; gap: 10px; font-size: 13px; }
.pcx-head > b { color: #f2c14e; white-space: nowrap; }
.pcx-warn { color: #ff9aa5; font-weight: 700; }
.pcx-cap { flex: 1; max-width: 220px; height: 6px; border-radius: 3px; background: #0f1420; overflow: hidden; }
.pcx-cap > div { height: 100%; background: linear-gradient(90deg, #3aa0d8, #7ad0ff); }
.pcx-cap.full > div { background: linear-gradient(90deg, #e04848, #ff8a5a); }
.pcx-team { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.pcx-slot, .pcx-mon { position: relative; display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 5px 4px 6px; border-radius: 10px; cursor: pointer; user-select: none;
  background: var(--pc-card); border: 1px solid var(--pc-line); min-width: 0; transition: border-color .12s, background .12s; }
.pcx-slot:hover, .pcx-mon:hover { border-color: #46557a; }
.pcx-slot.sel, .pcx-mon.sel { border-color: #f2c14e; background: linear-gradient(180deg, rgba(242,193,78,.14), var(--pc-card)); }
.pcx-slot.lead { box-shadow: inset 0 0 0 1px rgba(76,208,122,.5); }
.pcx-slot b, .pcx-mon b { font-size: 11px; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pcx-slot small, .pcx-mon small { font-size: 10px; color: var(--text-2); }
.pcx-slot.empty { justify-content: center; min-height: 86px; border-style: dashed; color: var(--muted); cursor: default; }
.pcx-slot.empty span { font-size: 20px; line-height: 1; }
.pcx-lead { position: absolute; top: 3px; left: 4px; font-style: normal; font-size: 9px; font-weight: 800; color: #4cd07a; text-transform: uppercase; }
.pcx-hp { width: 90%; height: 4px; border-radius: 2px; background: #0b0f18; overflow: hidden; margin-top: 2px; }
.pcx-hp > div { height: 100%; background: #4cd07a; }
.pcx-hp.mid > div { background: #f2c14e; } .pcx-hp.low > div { background: #e04848; }
.drop-on { border-color: #4cd07a !important; background: rgba(76,208,122,.14) !important; box-shadow: 0 0 0 2px rgba(76,208,122,.4); }
.pcx-filters { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.pcx-filters input[type=search] { flex: 1 1 160px; min-width: 0; }
.pcx-filters input[type=search], .pcx-filters select { padding: 6px 10px; border-radius: 8px; font-size: 13px; }
.pcx-check { display: flex; align-items: center; gap: 4px; font-size: 12px; }
.pcx-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 6px; min-height: 90px; padding: 6px; border-radius: 10px; background: rgba(0,0,0,.18); border: 1px dashed transparent; }
.pcx-grid.drop-on { border-color: #4cd07a; }
.pcx-mon.fav { border-color: rgba(255,209,102,.6); }
/* seleção de vários no PC */
.pcx-mon.pick { border-color: #4ade80; background: linear-gradient(180deg, rgba(74,222,128,.16), var(--pc-card)); }
.pcx-check { position: absolute; top: 2px; left: 5px; font-style: normal; font-weight: 900; font-size: 12px; color: #4ade80; }
.pcx-multi { display: flex; flex-direction: column; gap: 6px; }
.pcx-multi > small { color: var(--text-2); }
.pcx-multi-list { display: flex; flex-wrap: wrap; gap: 2px; max-height: 120px; overflow-y: auto; }
.pcx-star { position: absolute; top: 2px; right: 5px; font-style: normal; color: #ffd166; font-size: 11px; }
.pcx-empty { grid-column: 1 / -1; padding: 14px; text-align: center; color: var(--muted); font-size: 13px; }
.pcx-foot { display: flex; justify-content: flex-end; }
.pcx-ghost { border-radius: 10px; }
.pcx-side { position: sticky; top: 0; display: flex; flex-direction: column; gap: 8px; padding: 12px; border-radius: 12px; background: var(--pc-card); border: 1px solid var(--pc-line); }
.pcx-hint { display: flex; flex-direction: column; gap: 4px; color: var(--text-2); font-size: 12px; text-align: center; padding: 18px 4px; }
.pcx-hint b { color: var(--text); font-size: 14px; }
.pcx-sel { display: flex; gap: 10px; align-items: center; }
.pcx-sel > div:last-child { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pcx-sel b { font-size: 15px; } .pcx-sel small { color: var(--text-2); font-size: 11px; }
.pcx-side .pcx-hp { width: 100%; height: 6px; }
.pcx-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.pcx-actions .btn { justify-content: center; }
.pcx-swap small { color: var(--text-2); font-size: 11px; }
.pcx-swap-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin-top: 4px; }
.pcx-swap-btn { display: flex; flex-direction: column; align-items: center; padding: 4px; border-radius: 8px; cursor: pointer; background: #0f1420; border: 1px solid var(--pc-line); color: var(--text); }
.pcx-swap-btn:hover:not(:disabled) { border-color: #f2c14e; }
.pcx-swap-btn small { font-size: 10px; }
body.mobile .pcx { grid-template-columns: 1fr; }
body.mobile .pcx-side { position: static; order: -1; }
body.mobile .pcx-team { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* ===================== menu de escolha do jogo (ui.js gameSelect) e filtros do PC ===================== */
.gsel { position: relative; display: inline-block; min-width: 150px; }
.gsel-btn { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 12px; border-radius: 8px; cursor: pointer;
  background: linear-gradient(180deg, #1c2333, #151b28); border: 1px solid #2c3650; color: #e8ebf3; font: 700 13px var(--font, inherit); text-align: left; }
.gsel-btn i { font-style: normal; color: #f2c14e; font-size: 11px; transition: transform .15s; }
.gsel-btn:hover, .gsel.open .gsel-btn { border-color: #f2c14e; }
.gsel.open .gsel-btn i { transform: rotate(180deg); }
.gsel-menu { position: absolute; top: calc(100% + 4px); left: 0; min-width: 100%; z-index: 60; max-height: 280px; overflow-y: auto; padding: 4px; border-radius: 10px;
  background: #121722; border: 1px solid #f2c14e88; box-shadow: 0 10px 28px rgba(0,0,0,.6); display: flex; flex-direction: column; gap: 2px; }
.gsel-opt { padding: 7px 10px; border-radius: 6px; border: 0; background: none; color: #cfd6e6; font: 600 13px var(--font, inherit); text-align: left; cursor: pointer; white-space: nowrap; }
.gsel-opt:hover { background: #1f2738; color: #fff; }
.gsel-opt.on { background: rgba(242,193,78,.16); color: #f2c14e; }
.pcx-filters .gsel { flex: 0 0 auto; }
.pcx-search { flex: 1 1 180px; min-width: 0; display: flex; align-items: center; gap: 6px; padding: 0 10px; border-radius: 8px; background: #0f1420; border: 1px solid #2c3650; }
.pcx-search:focus-within { border-color: #f2c14e; }
.pcx-search span { font-size: 13px; opacity: .7; }
.pcx-search input, .theme-gba .win-body .pcx-search input { flex: 1; min-width: 0; padding: 8px 0; background: transparent !important; border: 0 !important; box-shadow: none !important; color: #e8ebf3 !important; font: 600 13px var(--font, inherit); outline: none; }
.pcx-chip { padding: 7px 12px; border-radius: 999px; cursor: pointer; font: 700 12px var(--font, inherit); color: #cfd6e6; background: #1a2131; border: 1px solid #2c3650; }
.pcx-chip:hover { border-color: #46557a; }
.pcx-chip.on { color: #ffe27a; border-color: #f2c14e; background: rgba(242,193,78,.16); }

/* ===================== tooltip do Pokémon (ui.js monCard): compacto, com golpes ===================== */
.mc2 { width: 268px; display: flex; flex-direction: column; gap: 6px; font-size: 12px; }
.mc2-head { display: flex; align-items: center; gap: 8px; }
.mc2-id { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.mc2-name { font-weight: 900; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc2-name small { font-weight: 700; color: var(--text-2, #a9b0c2); font-size: 11px; }
.mc2-chips { display: flex; gap: 3px; flex-wrap: wrap; align-items: center; }
.mc2-chips .chip { font-size: 9px; padding: 1px 5px; }
.mc2-perf { align-self: flex-start; font-size: 11px !important; padding: 2px 7px !important; }
.mc2-meta { display: flex; gap: 8px; flex-wrap: wrap; color: var(--text-2, #a9b0c2); font-size: 11px; }
.mc2-meta b { color: #e8ebf3; } .mc2-meta .max { color: #4cd07a; }
.mc2-held { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--text-2, #a9b0c2); }
.mc2-held .held-ic { width: 18px; height: 18px; }
.mc2-stats { display: flex; flex-direction: column; gap: 1px; padding: 5px 8px; border-radius: 8px; background: rgba(0,0,0,.25); }
.mc2-row { display: grid; grid-template-columns: 1fr 26px 18px 30px 64px; align-items: center; gap: 4px; line-height: 1.35; }
.mc2-th { font-size: 9px; font-weight: 800; color: var(--muted, #6c7489); text-transform: uppercase; letter-spacing: .4px; }
.mc2-th span:last-child, .mc2-v { text-align: right; }
.mc2-k { font-weight: 700; color: #cfd6e6; }
.mc2-iv, .mc2-ev { text-align: right; color: #cfd6e6; font-variant-numeric: tabular-nums; }
.mc2-iv.max { color: #ffd166; font-weight: 800; }
.mc2-ev.zero { color: var(--muted, #6c7489); } .mc2-ev.max { color: #4cd07a; font-weight: 800; }
.mc2-v { font-variant-numeric: tabular-nums; }
.mc2 .nat-up { color: #7ee2a0; } .mc2 .nat-down { color: #ff8a95; }
.mc2-row .iv-gr { font-size: 9px; padding: 0 3px; justify-self: center; }
.mc2-exp { display: grid; grid-template-columns: 22px 1fr auto; align-items: center; gap: 6px; font-size: 10px; color: var(--text-2, #a9b0c2); }
.mc2-bar { height: 5px; border-radius: 3px; background: #0b0f18; overflow: hidden; }
.mc2-bar > div { height: 100%; background: linear-gradient(90deg, #3aa0d8, #7ad0ff); }
.mc2-moves { display: flex; flex-direction: column; gap: 3px; padding-top: 5px; border-top: 1px solid rgba(255,255,255,.08); }
.mc2-move { display: grid; grid-template-columns: 62px 1fr 26px 34px; align-items: center; gap: 5px; }
.mc2-move .chip { font-size: 9px; padding: 1px 4px; text-align: center; }
.mc2-mname { font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc2-move small { text-align: right; color: var(--text-2, #a9b0c2); font-variant-numeric: tabular-nums; }
.mc2 .iv-hint { font-size: 10px; }
.pcx-info { display: flex; flex-direction: column; align-items: center; line-height: 1.25; }
.pcx-info small { font-size: 10px; color: var(--text-2); white-space: nowrap; }
.pcx-dot { color: var(--muted); }
.pcx-pf { font-weight: 800; } .pcx-pf.p1 { color: #a9b0c2; } .pcx-pf.p2 { color: #7ad0ff; } .pcx-pf.p3 { color: #c79bff; } .pcx-pf.p4 { color: #ffd166; }
.pcx-info .pcx-nat { font-size: 9px; color: #9fb4d8; font-style: italic; }
/* tooltip: cada título em cima da sua coluna (IV e EV à direita, como os números; a nota do IV no meio) */
.mc2-row { grid-template-columns: minmax(0, 1fr) 22px 16px 30px 62px; column-gap: 6px; }
.mc2-th > span { text-align: right; }
.mc2-th > span:first-child { text-align: left; }
.mc2-row > .iv-gr { justify-self: center; }
.mc2-k { text-align: left; }
/* Opções: escolha do tema de cores (main.js applySkin) */
.opt-skin { display: flex; gap: 6px; flex-shrink: 0; }
.opt-skin-btn { padding: 7px 14px; border-radius: 8px; cursor: pointer; font: 700 13px var(--font); color: #cfd6e6; background: #1a2131; border: 1px solid #2c3650; }
.opt-skin-btn[data-skin="gameboy"] { background: repeating-linear-gradient(180deg, #c8d078 0 2px, #b0b058 2px 4px); color: #404040; border-color: #484860; }
.opt-skin-btn.on { outline: 2px solid #f2c14e; outline-offset: 1px; }
#opt-skin-row.off { opacity: .45; pointer-events: none; }
/* janela Hunts: uma aba por cidade (panels.js huntCities / data/cidades.json) */
.hz-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 10px; }
.hz-tab { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 8px; cursor: pointer; font: 700 13px var(--font); color: #cfd6e6; background: #1a2131; border: 1px solid #2c3650; }
.hz-tab small { font-size: 10px; padding: 1px 6px; border-radius: 999px; background: rgba(255,255,255,.1); }
.hz-tab:hover:not(:disabled) { border-color: #46557a; }
.hz-tab.on { color: #f2c14e; border-color: #f2c14e; background: linear-gradient(180deg, rgba(242,193,78,.18), rgba(242,193,78,.04)); }
.hz-tab.locked { opacity: .45; cursor: not-allowed; }
.hz-head { display: flex; align-items: baseline; gap: 10px; margin: 2px 0 8px; }
.hz-head b { font-size: 16px; color: #f2c14e; }
.hz-head small { color: var(--text-2); }
.zone-meta .zone-lv { color: #f2c14e; }
/* card de hunt com miniatura do mapa em cima (panels.js huntThumb) */
.zone-grid .zone-card { flex-wrap: wrap; row-gap: 8px; }
.zone-thumb { flex: 0 0 100%; width: 100%; height: auto; aspect-ratio: 240 / 92; object-fit: cover; border-radius: 6px; image-rendering: pixelated; border: 1px solid rgba(0,0,0,.4); background: #06070b; }
/* Pokémon da hunt: quebram em linhas dentro de uma faixa (antes, uma linha só que vazava do card) */
.zone-grid .zone-card { align-items: flex-start; align-content: flex-start; }
.zone-grid .zone-card .zone-mons { display: grid; grid-template-columns: repeat(auto-fill, minmax(28px, 1fr)); justify-items: center; gap: 2px 1px; margin-top: 7px; padding: 4px; border-radius: 8px; background: rgba(0,0,0,.22); border: 1px solid rgba(255,255,255,.05); }
.zone-grid .zone-card .zone-mons > * { width: 28px; height: 28px; }
/* perfil: guilda do jogador (profile.js guildTag) */
.ph-guild { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; padding: 4px 12px 4px 4px; border-radius: 999px; background: rgba(0,0,0,.35); border: 1px solid var(--gc); color: #e8ebf3; font: inherit; text-align: left; }
button.ph-guild { cursor: pointer; } button.ph-guild:hover { background: rgba(0,0,0,.5); }
.ph-guild-em { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: radial-gradient(circle at 50% 30%, var(--gc), #10131b 120%); border: 2px solid var(--gc); }
.ph-guild-txt { display: flex; flex-direction: column; line-height: 1.15; }
.ph-guild-txt b { font-size: 13px; text-transform: uppercase; letter-spacing: .4px; }
.ph-guild-txt small { font-size: 11px; color: #f2c14e; }
/* mapa: barra de cima com o Pokémon do Dia e o botão das Raids (panels.js MapPanel.topBar) */
.mp-top { display: flex; gap: 10px; align-items: stretch; margin-bottom: 8px; }
.mp-daily { flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 10px; background: linear-gradient(90deg, rgba(242,193,78,.16), rgba(26,33,49,.9) 60%); border: 1px solid rgba(242,193,78,.5); }
.mp-daily-ic { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: rgba(0,0,0,.3); border: 2px solid #f2c14e; flex-shrink: 0; }
.mp-daily-txt { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.mp-daily-t { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.mp-daily-t small { color: #f2c14e; font-weight: 800; font-size: 10px; letter-spacing: .6px; }
.mp-daily-t b { font-size: 16px; color: #fff; }
.mp-daily-b { font-size: 12px; color: #9fe3b0; font-weight: 700; }
.mp-daily-w { font-size: 11px; color: #cfd6e6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mp-raids { display: flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 10px; cursor: pointer; color: #fff; font: inherit;
  background: linear-gradient(180deg, #6a3fb0, #4a2a86); border: 1px solid #a27ce8; box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); }
.mp-raids:hover { filter: brightness(1.12); }
.mp-raids img { width: 36px; height: 36px; image-rendering: pixelated; }
.mp-raids span { display: flex; flex-direction: column; text-align: left; line-height: 1.15; }
.mp-raids b { font-size: 15px; } .mp-raids small { font-size: 11px; color: #e0d4ff; }
.nav-btn.soon, .m-item.soon { opacity: .45; filter: grayscale(1); cursor: not-allowed; }
body.mobile .mp-top { flex-direction: column; }

/* ---- Boss da guilda: arena, luta, baú (guildarena.js) ---- */
/* a janela da luta fica no canto (a arena com o boss e os colegas continua visível); no celular vira uma folha embaixo */
.gb-ov { place-items: stretch end; background: transparent; pointer-events: none; }
.gb-ov .gb-box { pointer-events: auto; width: min(470px, calc(100% - 20px)); max-height: calc(100% - 20px); margin: 10px; align-self: center; }
.gb-box .pv-field { height: 220px; }
.gb-box .pv-log { max-height: 72px; min-height: 40px; flex: 0 1 72px; }
.gb-box .gb-modebar .bt-btn { padding: 6px 4px; font-size: 12px; }
.gb-box .pv-mon, .gb-box .pv-mon img { width: 136px; height: 136px; }
.gb-box .gb-bossmon img { filter: drop-shadow(0 0 10px rgba(255,90,90,.55)); }
.gb-clock { font-weight: 800; color: #ffd866; font-variant-numeric: tabular-nums; }
.gb-clock.low { color: #ff7a7a; animation: gbPulse 1s infinite; }
@keyframes gbPulse { 50% { opacity: .45; } }
.gb-side { display: grid; grid-template-columns: auto 1fr; gap: 6px 10px; align-items: center; padding: 6px 12px; background: #161b26; border-top: 1px solid rgba(255,255,255,.06); font-size: 12px; }
.gb-mydmg { display: flex; flex-direction: column; } .gb-mydmg b { font-size: 18px; color: #ffd866; }
.gb-arena { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.gb-who { display: inline-flex; align-items: center; gap: 3px; padding: 1px 6px 1px 1px; border-radius: 999px; background: rgba(255,255,255,.06); }
.gb-who b { color: #ffd866; font-size: 11px; }
.gb-feed { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 1px; max-height: 54px; overflow: hidden; color: #b9c2d6; }
.gb-feed:empty { display: none; }
.gb-modebar .bt-btn.on { outline: 2px solid #ffd866; }
.gb-entry { display: flex; flex-direction: column; gap: 8px; max-height: calc(100dvh - 130px); }   /* cabe na tela: só a lista dos seus Pokémon rola */
.gb-entry .gb-entry-head { gap: 12px; padding: 8px 12px; flex: none; }
.gb-entry .gb-entry-head .gd-boss-img { width: 72px; height: 72px; }
.gb-entry .gd-boss-info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.gb-entry-title { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 16px; }
.gb-entry-dmg { margin-left: auto; font-size: 12px; font-weight: 800; color: #fca5a5; }
.gb-entry .gb-builder { flex: 1 1 auto; min-height: 0; gap: 5px; }
.gb-entry .gb-builder .gd-lbl { margin: 2px 0 0; }
.gb-entry .gb-pool { max-height: 84px; padding: 4px; }
.gb-entry .gb-pool.gb-pc { flex: 1 1 auto; min-height: 50px; max-height: 190px; }
.gb-entry .gb-slot6 { min-height: 56px; }
.gb-entry .gb-hint { font-size: 11px; }
.gb-entry .gb-go { flex: none; align-items: center; flex-wrap: wrap; }
.gb-entry .gb-modes { display: flex; gap: 6px; margin-right: auto; }
.gb-entry .gb-mode { padding: 6px 10px; }
.gb-tier, .gd-boss-info .gb-tier { margin-left: 6px; padding: 1px 8px; border-radius: 999px; background: #3b2a66; color: #e8dcff; font-size: 11px; font-weight: 800; vertical-align: middle; }
.gb-row { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; justify-content: space-between; }
.gb-team { display: flex; flex-wrap: wrap; gap: 6px; }
.gb-tm { position: relative; display: flex; flex-direction: column; align-items: center; min-width: 64px; padding: 4px; border-radius: 8px; background: rgba(255,255,255,.05); }
.gb-tm small { font-size: 10px; white-space: nowrap; }
.gb-tm.loan { background: rgba(255,216,102,.12); outline: 1px solid rgba(255,216,102,.45); }
.gb-tm em { position: absolute; top: 2px; right: 3px; font-style: normal; font-size: 9px; font-weight: 800; color: #ffd866; }
.gb-modes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.gb-mode { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; text-align: left; border-radius: 10px; border: 2px solid rgba(255,255,255,.1); background: rgba(255,255,255,.04); color: inherit; cursor: pointer; }
.gb-mode small { opacity: .75; font-size: 11px; }
.gb-mode.on { border-color: #ffd866; background: rgba(255,216,102,.1); }
.gb-go { justify-content: flex-end; gap: 8px; }
.gb-chest { display: flex; flex-direction: column; gap: 10px; }
.gb-slots { display: flex; flex-direction: column; gap: 8px; }
.gb-slot { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 10px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); }
.gb-slot.busy { border-color: rgba(255,216,102,.5); }
.gb-slot.empty { justify-content: center; min-height: 56px; border-style: dashed; opacity: .6; }
.gb-slot-txt { flex: 1; display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.gb-slot-txt small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gb-slot-btns { display: flex; flex-direction: column; gap: 4px; }
.gb-pick { display: flex; flex-direction: column; gap: 10px; }
.gb-pick-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; max-height: 50vh; overflow: auto; }
.gb-pick-it { display: flex; align-items: center; gap: 6px; padding: 6px; border-radius: 8px; border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.04); color: inherit; cursor: pointer; text-align: left; }
.gb-pick-it span { display: flex; flex-direction: column; } .gb-pick-it small { opacity: .7; }
.gb-pick-it:hover { border-color: #ffd866; }
.gb-ladder { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 8px; }
.gb-step { position: relative; display: flex; flex-direction: column; align-items: center; padding: 2px 4px; border-radius: 8px; background: rgba(255,255,255,.04); opacity: .55; }
.gb-step small { font-size: 10px; font-weight: 800; }
.gb-step.done { opacity: 1; background: rgba(74,222,128,.12); } .gb-step.done::after { content: "✓"; position: absolute; top: 0; right: 3px; color: #4ade80; font-size: 11px; font-weight: 900; }
.gb-step.now { opacity: 1; outline: 2px solid #ffd866; background: rgba(255,216,102,.12); }
body.mobile .gb-ov { position: fixed; inset: 0; z-index: 70; place-items: end stretch; }   /* por cima da barra de baixo; o topo mostra a arena */
body.mobile .gb-ov .gb-box { width: auto; max-height: calc(100% - 150px); margin: 0; align-self: end; border-radius: 14px 14px 0 0; }
body.mobile .gb-box .pv-info { zoom: .62; }
body.mobile .gb-box .gb-moves .bt-btn { padding: 6px 4px; }
body.mobile .gb-box .pv-field { height: 190px; }
body.mobile .gb-box .pv-mon, body.mobile .gb-box .pv-mon img { width: 112px; height: 112px; }
.gb-box .bt-move.gb-nopp { opacity: .4; filter: grayscale(.7); }   /* golpe sem PP (só na luta do boss) */
/* sede da guilda: botão pequeno ao lado do nível (guildbase.js), fora da conta do centro (nível e golpes continuam centralizados) */
.lvl-row { position: relative; }
#base-decor-btn { position: absolute; left: calc(100% + 8px); top: 50%; transform: translateY(-50%); padding: 3px 10px; min-height: 0; font-size: 11px; line-height: 1.3; white-space: nowrap; pointer-events: auto; }
.gd-shoptabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 8px; }   /* Loja da guilda: uma aba por nível do Mercado */
.gd-shoptabs .gd-sub.locked { opacity: .6; }
/* boss da guilda: montador do time (Pokémon da guilda · time de 6 · seus Pokémon) — guildarena.js */
.gb-builder { display: flex; flex-direction: column; gap: 6px; }
.gb-pool { display: flex; flex-wrap: wrap; gap: 6px; max-height: 168px; overflow-y: auto; padding: 6px; border-radius: 10px; background: rgba(255,255,255,.03); border: 1px dashed rgba(255,255,255,.1); }
.gb-pool.over { border-color: #ffd866; }
.gb-pool .gb-tm { border: 1px solid transparent; color: inherit; cursor: grab; font: inherit; }
.gb-pool .gb-tm:hover { border-color: #ffd866; }
.gb-pool .gb-tm.in { opacity: .45; }
.gb-pool .gb-tm.off { opacity: .35; cursor: not-allowed; }
.gb-slots6 { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.gb-slot6 { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 64px; padding: 4px 2px; border-radius: 10px; background: rgba(255,255,255,.06); border: 2px solid rgba(255,255,255,.12); cursor: pointer; }
.gb-slot6 small { font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.gb-slot6.empty { border-style: dashed; opacity: .7; }
.gb-slot6.sel { border-color: #ffd866; background: rgba(255,216,102,.12); }
.gb-slot6.over { border-color: #4ade80; }
.gb-slot6 em { position: absolute; top: 2px; left: 4px; font-style: normal; font-size: 9px; font-weight: 800; color: #ffd866; }
.gb-x { position: absolute; top: 1px; right: 2px; width: 18px; height: 18px; padding: 0; border: 0; border-radius: 50%; background: rgba(0,0,0,.45); color: #fff; font-size: 11px; line-height: 18px; cursor: pointer; }
body.mobile .gb-slots6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gb-total { display: flex; justify-content: flex-start; align-items: baseline; gap: 10px; margin: 4px 0; padding: 6px 10px; border-radius: 8px; background: rgba(248,113,113,.12); color: #fca5a5; }   /* boss do dia: vida infinita, dano da guilda hoje */
/* boss da guilda: luta (guildarena.js) — no centro de baixo some o nível/golpes e fica a faixa de status da luta */
body.gb-fighting #move-bar, body.gb-fighting .hud-bottom-center .lvl-row { display: none !important; }
#gb-hud { pointer-events: auto; width: min(980px, calc(100vw - 20px)); }
/* avanço suave de quem ataca na janela da luta (meu Pokémon embaixo à esquerda, boss em cima à direita) */
.gb-box .pv-mon img.gb-lunge-me { animation: gbLungeMe .42s ease-in-out both; }
.gb-box .pv-mon img.gb-lunge-boss { animation: gbLungeBoss .42s ease-in-out both; }
@keyframes gbLungeMe { 0%, 100% { transform: none; } 45% { transform: translate(26px, -16px); } }
@keyframes gbLungeBoss { 0%, 100% { transform: none; } 45% { transform: translate(-26px, 16px); } }
.gb-strip { display: flex; align-items: stretch; gap: 6px; padding: 6px 8px; border-radius: 10px; background: rgba(14,16,24,.88); border: 1px solid rgba(255,255,255,.1); font-size: 12px; }
.gb-box .gb-strip { border-radius: 0; border-width: 1px 0 0; background: #121722; }
/* duas caixas do mesmo tamanho (dividido no meio); o dano fica fora delas, à esquerda */
.gb-cond { flex: 1 1 0; display: flex; flex-direction: column; justify-content: flex-start; gap: 4px; min-width: 0; padding: 4px 6px; border-radius: 8px; background: rgba(96,165,250,.1); }
.gb-crow { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; min-height: 20px; }
.gb-crow + .gb-crow { padding-left: 2px; }
@media (max-width: 520px) { .gb-strip { flex-wrap: wrap; } .gb-cond { flex-basis: 100%; } }
.gb-cond.boss { background: rgba(248,113,113,.1); }
.gb-cond .pv-st { position: static; font-size: 10px; }   /* status (PSN, TOX, SLP...) na faixa, junto dos buffs */
.gb-cond b { margin-right: 2px; } .gb-crow > small { opacity: .75; margin-right: 4px; }
.gb-stg { padding: 1px 6px; border-radius: 999px; font-size: 11px; font-weight: 800; }
.gb-stg.up { background: rgba(74,222,128,.18); color: #86efac; } .gb-stg.down { background: rgba(248,113,113,.18); color: #fca5a5; }
.gb-tag { padding: 1px 6px; border-radius: 999px; font-size: 11px; background: rgba(250,204,21,.16); color: #fde68a; }
.gb-dmgall { flex: none; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 0 8px 0 4px; white-space: nowrap; } .gb-dmgall b { font-size: 17px; color: #ffd866; }
.gb-box .pv-info { zoom: .78; }   /* barras de vida menores: o Pokémon não fica embaixo delas */
.gb-box .gb-moves { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }   /* 2 golpes em cima, 2 embaixo */
.gb-box .gb-modebar { display: grid; grid-template-columns: repeat(auto-fit, minmax(72px, 1fr)); gap: 6px; }
.gb-box .gb-items { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.gb-box .gb-items .bt-btn img { width: 26px; height: 26px; }
.gb-box .gb-busy .gb-moves, .gb-box .gb-busy .bt-row:not(.gb-modebar) { pointer-events: none; opacity: .55; }   /* turno sendo mostrado golpe a golpe */
.pv-dmg.miss { color: #c3cad8 !important; }   /* boss da guilda: golpe que errou */
.chip.st-tox { background: #5b1f7a; color: #fff; box-shadow: inset 0 0 0 1px #c46bff; }   /* veneno grave (Toxic) */
.pv-dmg.poison { color: #c46bff !important; } .pv-dmg.burn { color: #ff8a3d !important; } .pv-dmg.heal { color: #7ff0a4 !important; }
/* troca de Pokémon na janela da luta: o antigo some num brilho vermelho (recolhido pela Pokébola) e o novo cresce ao entrar */
@keyframes pvSwapOut { 0% { transform: scale(1); filter: none; opacity: 1; } 60% { filter: brightness(2) sepia(1) saturate(8) hue-rotate(-20deg) drop-shadow(0 0 10px #ff3a4a); } 100% { transform: scale(.15); filter: brightness(3) sepia(1) saturate(8) hue-rotate(-20deg); opacity: 0; } }
@keyframes pvSwapIn { 0% { transform: scale(.2); opacity: 0; filter: brightness(2.5); } 40% { opacity: 1; } 100% { transform: scale(1); opacity: 1; filter: none; } }
.pv-mon img.pv-swap-out { animation: pvSwapOut .36s linear forwards; }
.pv-mon img.pv-swap-in { animation: pvSwapIn .56s ease-out both; }
.pv-dmg.use { color: #8be9fd !important; font-size: 18px; white-space: nowrap; }   /* boss da guilda: nome do golpe sem dano */   /* dano de veneno / queimadura no fim do turno */

/* ===================== Pokédex (pokedex.js) — estilo Black/White: grade verde, barras escuras, lista inclinada ===================== */
#panel-char.active:has(> .pdx) { height: 100%; }   /* ocupa a altura da janela: a ficha e a lista rolam por dentro */
.pdx { --pdx-g1: #10a77e; --pdx-g2: #0d8f6c; --pdx-line: rgba(0,0,0,.18); --pdx-dark: #1d2126; display: flex; flex-direction: column; gap: 8px; height: 100%; min-height: 0; outline: none; }
.pdx-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 7px 14px; border-radius: 10px; background: var(--pdx-dark); border: 2px solid #8fd14f; color: #f1f5f9; font-family: "JetBrains Mono", monospace; }
.pdx-head > b { letter-spacing: 1px; color: #c8f59a; }
.pdx-count { display: flex; gap: 16px; font-size: 12px; } .pdx-count b { font-size: 15px; color: #fff; margin-left: 4px; } .pdx-of { opacity: .6; }
.pdx-tools { display: flex; flex-wrap: wrap; gap: 6px; }
.pdx-searchbox { flex: 1 1 200px; display: flex; align-items: center; gap: 6px; padding: 0 10px; border-radius: 8px; background: #0f1419; border: 1px solid rgba(255,255,255,.12); }
.pdx-search { flex: 1; min-width: 0; padding: 7px 0; background: none; border: 0; color: inherit; font: inherit; outline: none; }
.pdx-sel { flex: 0 1 170px; min-width: 120px; padding: 6px 8px; border-radius: 8px; background: #0f1419; color: inherit; border: 1px solid rgba(255,255,255,.12); font: inherit; font-size: 13px; }
.pdx-body { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 10px; }
/* ficha (esquerda) */
.pdx-entry { min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; padding: 10px; border-radius: 12px;
  background: linear-gradient(var(--pdx-line) 1px, transparent 1px) 0 0 / 16px 16px, linear-gradient(90deg, var(--pdx-line) 1px, transparent 1px) 0 0 / 16px 16px, linear-gradient(180deg, var(--pdx-g1), var(--pdx-g2)); border: 2px solid #0a6b51; }
.pdx-top { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 10px; align-items: stretch; }
.pdx-pic { position: relative; display: flex; align-items: center; justify-content: center; border-radius: 10px; background: linear-gradient(135deg, #d9dde3, #aeb6c0); border: 2px solid #5b6470; min-height: 150px; }
.pdx-sprite { width: 140px; height: 140px; image-rendering: pixelated; filter: drop-shadow(0 4px 4px rgba(0,0,0,.35)); }
.pdx-sprite.sil, .pdx-ic.sil .mon-icon { filter: brightness(0) opacity(.55); }
.pdx-got { position: absolute; top: 6px; left: 6px; width: 20px; height: 20px; image-rendering: pixelated; }
.pdx-card { display: flex; flex-direction: column; gap: 5px; padding: 8px 10px; border-radius: 10px; background: #eef1f4; color: #2b3138; border: 2px solid #5b6470; }
.pdx-title { display: flex; align-items: baseline; gap: 10px; font-family: "JetBrains Mono", monospace; } .pdx-title b { font-size: 18px; } .pdx-no { color: #6b7380; font-weight: 800; }
.pdx-cat { font-weight: 800; color: #3b4652; padding-bottom: 4px; border-bottom: 2px solid #c8cfd7; }
.pdx-types .chip.tipo { transform: none; }
.pdx-hw { display: flex; justify-content: space-between; align-items: center; padding: 2px 6px; border-radius: 6px; background: linear-gradient(90deg, #d4dae1, transparent); font-family: "JetBrains Mono", monospace; }
.pdx-hw span { font-weight: 900; color: #5b6470; } .pdx-hw b { font-size: 15px; }
.pdx-desc { padding: 10px 12px; border-radius: 10px; background: #2c3036; color: #f8fafc; font-size: 14px; line-height: 1.5; border: 2px solid #15181c; min-height: 62px; }
.pdx-data { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; }
.pdx-dato { display: flex; flex-direction: column; gap: 1px; padding: 5px 7px; border-radius: 8px; background: rgba(15,20,25,.72); }
.pdx-dato small { font-size: 10px; color: #9be7c9; text-transform: uppercase; letter-spacing: .3px; } .pdx-dato b { font-size: 12px; color: #fff; }
.pdx-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 10px; padding: 7px 9px; border-radius: 8px; background: rgba(15,20,25,.72); }
.pdx-stats .pdx-lbl { grid-column: 1 / -1; font-size: 10px; color: #9be7c9; text-transform: uppercase; letter-spacing: .3px; }
.pdx-stat { display: grid; grid-template-columns: 30px 30px 1fr; align-items: center; gap: 4px; }
.pdx-stat small { font-size: 11px; color: #cbd5e1; } .pdx-stat b { font-size: 12px; color: #fff; text-align: right; }
.pdx-stat i { height: 6px; border-radius: 3px; background: rgba(255,255,255,.12); overflow: hidden; } .pdx-stat i span { display: block; height: 100%; }
.pdx-line { display: flex; flex-direction: column; gap: 1px; padding: 5px 9px; border-radius: 8px; background: rgba(15,20,25,.72); }
.pdx-line small { font-size: 10px; color: #9be7c9; text-transform: uppercase; letter-spacing: .3px; } .pdx-line b { font-size: 12px; color: #fff; font-weight: 700; }
/* lista (direita) */
.pdx-list { position: relative; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 4px; padding: 6px; border-radius: 12px; background: #23292f; border: 2px solid #15181c; }
.pdx-row { display: grid; grid-template-columns: 44px 18px 40px minmax(0, 1fr); align-items: center; gap: 6px; padding: 2px 14px 2px 6px; min-height: 46px; border: 0; border-radius: 6px;
  clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 100%, 0 100%); background: linear-gradient(90deg, #3a424b, #2b3138); color: #f1f5f9; cursor: pointer; font: inherit; text-align: left; }
.pdx-row:hover { background: linear-gradient(90deg, #46515c, #333b44); }
.pdx-row.on { background: linear-gradient(90deg, #7cc242, #4f9a2a); color: #10200a; }
.pdx-row.unknown { color: #7b8794; }
.pdx-ic { display: flex; align-items: center; justify-content: center; }
.pdx-ball img { width: 16px; height: 16px; image-rendering: pixelated; display: block; }
.pdx-num, .pdx-name { font-family: "JetBrains Mono", monospace; font-weight: 800; } .pdx-num { font-size: 13px; opacity: .85; } .pdx-name { font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pdx-empty { padding: 20px; text-align: center; color: #9aa3b8; }
body.mobile .pdx-body { grid-template-columns: 1fr; grid-template-rows: auto minmax(220px, 1fr); }
body.mobile .pdx-top { grid-template-columns: 110px minmax(0, 1fr); } body.mobile .pdx-sprite { width: 104px; height: 104px; } body.mobile .pdx-pic { min-height: 110px; }
body.mobile .pdx-data { grid-template-columns: repeat(2, minmax(0, 1fr)); } body.mobile .pdx-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
/* ícones de TM (discos desenhados lisos, 64px): reduzir suave, não pixelado */
img[src*="itemMachine"], img[src*="items/tm"] { image-rendering: auto !important; }   /* discos dos TMs (tm<TIPO>.png): suaves, não pixelados */

/* ---- canto superior direito: AUTO como pílula com chave, e a coluna de botões alinhada (mesma largura) ---- */
.hud-tr { --tr-w: 176px; }
.hud-tr .hud-btns > .money-pill.daily { width: var(--tr-w); justify-content: flex-start; padding: 4px 12px 4px 6px; box-sizing: border-box; }
.hud-top-center { top: 8px; }   /* AUTO no topo central, como pílula */
.hud-top-center .auto-pill { min-width: 190px; justify-content: flex-start; padding: 5px 12px 5px 6px; box-sizing: border-box; font-size: 14px; box-shadow: 0 4px 12px rgba(0,0,0,.35); }
.hud-tr .hud-btns > .money-pill.daily img { width: 22px; height: 22px; }
.auto-pill { position: relative; cursor: pointer; color: #dfe5f0; font: 800 13px var(--mono); gap: 7px; transition: border-color .2s, box-shadow .2s, background .2s; }
.auto-pill .auto-ic { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: #2a3140; font-size: 12px; }
.auto-pill .auto-lbl { letter-spacing: 1px; }
.auto-pill small { font-size: 10px; font-weight: 800; color: #8a93a6; margin-left: 2px; }
.auto-pill .auto-sw { margin-left: auto; width: 34px; height: 18px; border-radius: 999px; background: #3a4252; position: relative; transition: background .2s; flex-shrink: 0; }
.auto-pill .auto-sw i { position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: #cfd6e6; transition: left .2s, background .2s; box-shadow: 0 1px 2px rgba(0,0,0,.5); }
.auto-pill:hover { border-color: #5b6475; }
.auto-pill.on { border-color: #3ad35b; box-shadow: 0 0 10px rgba(58,211,91,.35); background: linear-gradient(180deg, rgba(36,86,52,.92), rgba(20,48,30,.92)); color: #fff; }
.auto-pill.on .auto-ic { background: #3ad35b; color: #0d2414; }
.auto-pill.on small { color: #9ff5b4; }
.auto-pill.on .auto-sw { background: #3ad35b; } .auto-pill.on .auto-sw i { left: 18px; background: #fff; }
/* no celular o Auto tem botão próprio (#m-auto); .hud-top-center já some no mobile.css */

/* ===================== Passe de Batalha (battlepass.js) ===================== */
.modal-box:has(.bpx) { width: min(640px, 96vw); }
.bpx { display: flex; flex-direction: column; gap: 9px; }
.bpx-head { display: flex; align-items: center; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.bpx-chip { padding: 3px 10px; border-radius: 999px; background: #1d2433; border: 1px solid #34405a; font: 800 12px var(--mono); color: #cfd6e6; }
.bpx-chip.gold { color: #ffd866; border-color: #8a6d1d; background: rgba(255,216,102,.08); }
.bpx-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.bpx-btn { display: flex; align-items: center; justify-content: center; gap: 4px; padding: 9px 10px; border-radius: 8px; border: 1px solid #8a6d1d; background: linear-gradient(180deg, #2b3550, #1c2337); color: #ffd866; font: 800 13px var(--font, inherit); cursor: pointer; }
.bpx-btn img { width: 16px; height: 16px; } .bpx-btn:hover { filter: brightness(1.15); }
.bpx-btn.on { cursor: default; border-color: #3ad35b; color: #86efac; background: rgba(58,211,91,.08); }
.bpx-lbl { font: 800 11px var(--font, inherit); letter-spacing: .6px; color: #cbd5e1; }
.bpx-lblrow { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.bpx-all { padding: 4px 10px; border-radius: 999px; border: 1px solid #ffd866; background: rgba(255,216,102,.12); color: #ffd866; font: 800 11px var(--font, inherit); cursor: pointer; animation: dl-pulse 1.4s ease-in-out infinite; }
.bpx-track { display: flex; gap: 6px; overflow-x: auto; padding: 2px 2px 8px; scroll-behavior: smooth; }
.bpx-rowlbl { position: sticky; left: 0; z-index: 2; display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; padding-right: 4px; background: var(--panel, #161b26); }
.bpx-rowlbl span { height: 58px; display: flex; align-items: center; writing-mode: vertical-rl; transform: rotate(180deg); font: 800 9px var(--font, inherit); letter-spacing: 1px; color: #94a3b8; }
.bpx-rowlbl span.prem { color: #ffd866; }
.bpx-col { flex: 0 0 66px; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.bpx-col > b { font: 800 13px var(--mono); color: #ffd866; } .bpx-col > small { font: 700 10px var(--mono); color: #94a3b8; margin-top: -4px; }
.bpx-col.next > b { color: #fff; text-shadow: 0 0 6px #ffd866; }
.bpx-cell { position: relative; width: 62px; height: 58px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; border-radius: 8px; border: 1px solid #2c3650; background: #1a2131; color: #cbd5e1; cursor: default; padding: 0; font: inherit; }
.bpx-cell.premium { background: linear-gradient(180deg, #2a2440, #1b1a2b); border-color: #4a3d70; }
.bpx-cell.got { border-color: #3ad35b; background: rgba(58,211,91,.12); }
.bpx-cell.can { border-color: #ffd866; cursor: pointer; box-shadow: 0 0 8px rgba(255,216,102,.45); animation: dl-pulse 1.4s ease-in-out infinite; }
.bpx-cell.locked .bpx-ic { opacity: .45; filter: grayscale(.4); }
.bpx-cell small { font: 800 10px var(--mono); color: #94a3b8; }
.bpx-ic { width: 32px; height: 32px; display: grid; place-items: center; } .bpx-ic img { width: 30px; height: 30px; image-rendering: pixelated; }
.bpx-st { position: absolute; top: 2px; right: 4px; font-style: normal; font-size: 10px; } .bpx-st.ok { color: #3ad35b; font-weight: 900; font-size: 12px; }
.bpx-more { position: absolute; bottom: 2px; right: 4px; font-style: normal; font-weight: 900; font-size: 11px; color: #ffd866; }
.bpx-ban { width: 30px; height: 20px; border-radius: 4px; display: block; border: 1px solid rgba(255,255,255,.3); }
.bpx-nc { font-size: 16px; text-shadow: 0 0 2px #000, 0 0 2px #000; } .bpx-fx { font-size: 20px; }
.bpx-prog { height: 6px; border-radius: 3px; background: #273043; overflow: hidden; } .bpx-prog i { display: block; height: 100%; background: linear-gradient(90deg, #22c55e, #4ade80); }
.bpx-next { font-size: 12px; color: #94a3b8; } .bpx-next b { color: #ffd866; }
.bpx-cats { display: flex; flex-direction: column; }
.bpx-catbox { border-bottom: 1px solid #263044; } .bpx-catbox.open { padding-bottom: 8px; }
.bpx-cat { width: 100%; display: flex; align-items: center; gap: 8px; padding: 11px 2px; background: none; border: 0; color: #cbd5e1; font: 800 11px var(--font, inherit); letter-spacing: .5px; cursor: pointer; text-align: left; }
.bpx-cat span { flex: 1; } .bpx-cat em { font-style: normal; font: 800 11px var(--mono); padding: 1px 7px; border-radius: 999px; background: #1d2433; border: 1px solid #34405a; } .bpx-cat i { font-style: normal; font-size: 10px; }
.bpx-cat.ready span::after { content: " ●"; color: #ffd866; }
.bpx-mis { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px 12px; margin-top: 6px; border-radius: 10px; background: #1a2131; border: 1px solid #2c3650; }
.bpx-mis.fin { border-color: #2f7a45; } .bpx-mis.can { border-color: #ffd866; }
.bpx-mic { font-size: 18px; text-align: center; opacity: .85; }
.bpx-mbody { display: flex; flex-direction: column; gap: 4px; min-width: 0; } .bpx-mbody > b { font-size: 13px; color: #f1f5f9; }
.bpx-mbody small { font: 700 11px var(--mono); color: #e7c35a; } .bpx-steps { color: #64748b; }
.bpx-bar { height: 6px; border-radius: 3px; background: #2a3346; overflow: hidden; } .bpx-bar i { display: block; height: 100%; background: linear-gradient(90deg, #22c55e, #4ade80); }
.bpx-claim { padding: 6px 12px; border-radius: 8px; border: 1px solid #34405a; background: #232b3d; color: #64748b; font: 800 12px var(--font, inherit); white-space: nowrap; }
.bpx-claim.on { border-color: #ffd866; color: #1a1300; background: linear-gradient(180deg, #ffd866, #e0a92b); cursor: pointer; }
.bpx-done { font: 800 12px var(--font, inherit); color: #4ade80; white-space: nowrap; }
.money-pill.daily.pass img { width: 22px; height: 22px; }

/* calendário de eventos (calendar.js): botão Eventos no topo + janela com o mês, o dia escolhido e o presente diário */
.money-pill.daily .cal-ic { font-size: 16px; line-height: 1; }
.m-item .m-emo { font-size: 26px; line-height: 32px; height: 32px; }
.modal-box:has(.cal) { width: min(860px, 97vw); }
.cal { display: flex; flex-direction: column; gap: 10px; }
.cal-now { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; background: #141b2a; border: 1px solid #2f3a52; }
.cal-now-lbl { color: #7cc4ff; font: 800 11px var(--mono); letter-spacing: .08em; }
.cal-now-txt { flex: 1; min-width: 0; font-size: 13px; }
.cal-gift { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 8px; background: #1e273a; border: 1px solid #3a4866; color: #e7ecf5; font-weight: 800; font-size: 12px; cursor: pointer; white-space: nowrap; }
.cal-gift img { width: 20px; height: 20px; image-rendering: pixelated; }
.cal-gift:hover { background: #26324a; }
.cal-gift.ready { border-color: #ffd166; color: #ffd166; box-shadow: 0 0 10px #ffd16655; animation: dl-pulse 1.4s ease-in-out infinite; }
.cal-body { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 12px; align-items: start; }
.cal-mhead { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.cal-mhead b { font-size: 15px; }
.cal-nav { width: 32px; height: 30px; border-radius: 7px; background: #1e273a; border: 1px solid #3a4866; color: #e7ecf5; font-size: 18px; cursor: pointer; line-height: 1; }
.cal-nav:hover { background: #26324a; }
.cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.cal-wk { text-align: center; font: 700 10px var(--mono); color: #8a97b1; padding-bottom: 2px; }
.cal-day { position: relative; aspect-ratio: 1 / .82; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border-radius: 8px; background: #161d2c; border: 1px solid #28324a; color: #8a97b1; cursor: pointer; font: inherit; padding: 0; }
.cal-day.empty { background: none; border: 0; cursor: default; }
.cal-day b { font-size: 14px; }
.cal-day.has { color: #e7ecf5; background: #1b2436; }
.cal-day.past { opacity: .55; }
.cal-day:hover:not(.empty) { border-color: #4a5a80; }
.cal-day.today { border: 2px solid #ffd166; background: #2a2616; color: #ffe39a; opacity: 1; }
.cal-day.sel { box-shadow: 0 0 0 2px #7cc4ff; }
.cal-dots { display: flex; gap: 3px; min-height: 7px; }
.cal-dots i, .cal-legend i, .cal-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; }
.cal-legend { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 8px; font-size: 11px; color: #a9b4c8; }
.cal-legend span { display: inline-flex; align-items: center; gap: 5px; }
.cal-side { background: #121826; border: 1px solid #2a3450; border-radius: 10px; padding: 10px; display: flex; flex-direction: column; gap: 8px; max-height: 470px; overflow-y: auto; }
.cal-selname { font-weight: 800; font-size: 14px; }
.cal-sub { font: 800 10px var(--mono); letter-spacing: .08em; color: #8a97b1; margin-top: 4px; }
.cal-evs { display: flex; flex-direction: column; gap: 6px; }
.cal-ev { display: flex; align-items: center; gap: 8px; padding: 7px 9px; border-radius: 8px; background: #182032; border: 1px solid #2c3854; font-size: 12px; }
.cal-ev.live { border-color: #4ade80; box-shadow: inset 0 0 12px #4ade8033; }
.cal-ev.over { opacity: .5; }
.cal-ev-ic { width: 20px; text-align: center; font-size: 15px; }
.cal-ev-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.cal-ev-txt small { color: #93a0b8; font-size: 11px; }
.cal-ev-time { font: 800 12px var(--mono); color: #ffd166; white-space: nowrap; }
.cal-ev.live .cal-ev-time { color: #4ade80; }
.cal-none { padding: 4px 2px; }
.cal-foot { text-align: center; }
.dl-back { align-self: center; margin-top: 4px; }
@media (max-width: 720px) {
  .cal-body { grid-template-columns: 1fr; }
  .cal-now { flex-wrap: wrap; }
  .cal-gift { width: 100%; justify-content: center; }
  .cal-side { max-height: none; }
}
/* ginásios (gym.js): Sim/Não na conversa do líder, progresso do desafio, fim com a insígnia, insígnias no perfil */
.nt-box .nt-choices { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; }
.nt-box .nt-choices:empty { display: none; }
.gym-prog { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px 10px 0; }
.gym-step { font-size: 11px; font-weight: 800; padding: 2px 8px; border-radius: 999px; background: #1c2333; border: 1px solid #33405c; color: #93a0b8; }
.gym-step.cur { color: #ffd166; border-color: #ffd166; background: #2a2616; }
.gym-step.done { color: #4ade80; border-color: #2f7a48; background: #14261b; text-decoration: line-through; }
.gym-ov .sw-foot.gym-end { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; padding: 14px 10px; }
.gym-ov .gym-end.gym-won { background: linear-gradient(180deg, rgba(255,209,102,.12), transparent); }
.gym-badge-big { width: 72px; height: 72px; image-rendering: pixelated; filter: drop-shadow(0 4px 10px rgba(255,209,102,.5)); animation: gym-pop .6s ease-out; }
@keyframes gym-pop { 0% { transform: scale(.2) rotate(-30deg); opacity: 0; } 70% { transform: scale(1.15) rotate(6deg); opacity: 1; } 100% { transform: scale(1) rotate(0); } }
.ph-badges { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 6px; padding: 4px 0 2px; }
.ph-badge { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 6px 2px; border-radius: 8px; background: #151b28; border: 1px solid #28324a; }
.ph-badge img { width: 32px; height: 32px; image-rendering: pixelated; filter: grayscale(1) brightness(.35); }
.ph-badge span { width: 32px; height: 32px; display: grid; place-items: center; color: #4a5672; font-weight: 800; }
.ph-badge small { font-size: 9px; color: #6b7891; text-align: center; line-height: 1.1; }
.ph-badge.got { border-color: #8a7a3a; background: linear-gradient(180deg, #2a2616, #151b28); }
.ph-badge.got img { filter: drop-shadow(0 2px 4px rgba(0,0,0,.6)); }
.ph-badge.got small { color: #ffd166; }
@media (max-width: 520px) { .ph-badges { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* ginásio: botão de sair enquanto anda pela sala */
.gym-exit { position: absolute; left: 14px; bottom: 118px; z-index: 6; padding: 8px 16px; border-radius: 999px; background: rgba(20,24,36,.92); border: 2px solid #6b2a33; color: #ffb3bb; font-weight: 800; font-size: 13px; cursor: pointer; box-shadow: 0 6px 18px rgba(0,0,0,.5); }
.gym-exit:hover { background: #3a1d22; }
/* desafio do ginásio: botões trancados ficam cinza com cadeado (gym.js syncGymLocks); o clique mostra o aviso */
.gym-locked { position: relative; filter: grayscale(1) brightness(.55); opacity: .75; }
.gym-locked::after { content: "🔒"; position: absolute; top: 2px; right: 4px; font-size: 14px; line-height: 1; filter: grayscale(0) brightness(1.6); pointer-events: none; }
.m-item.gym-locked::after { top: 50%; right: 10px; transform: translateY(-50%); }
.gym-items { position: absolute; left: 50%; transform: translateX(-50%); bottom: 118px; z-index: 6; padding: 8px 16px; border-radius: 999px; background: rgba(20,24,36,.92); border: 2px solid #3b5a8a; color: #bfdbfe; font-weight: 800; font-size: 13px; cursor: pointer; box-shadow: 0 6px 18px rgba(0,0,0,.5); }
.gym-items:hover { background: #1e2d48; }
body.mobile .gym-items { bottom: 150px; }
.gym-bag .gym-item-row { padding: 8px 10px; margin-top: 8px; border-radius: 10px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); }
.pv-dmg .eff { display: block; font: 800 13px "Nunito", "Inter", sans-serif; letter-spacing: 0; margin-bottom: -4px; text-shadow: 0 1px 0 #000, 0 0 6px rgba(0,0,0,.9); }
.pv-dmg.eff-up .eff { color: #5ef08a; }
.pv-dmg.eff-down .eff { color: #c3c9d6; }
body.mobile .gym-exit { bottom: 150px; }
/* Corte (cut.js): balãozinho perto da arvorezinha perguntando se o Pokémon corta */
/* aviso do lado de arvorezinha/pedra (cut.js): "E Cortar"; no celular vira botão de tocar */
.cut-prompt { position: absolute; left: 50%; top: calc(50% + 30px); transform: translateX(-50%); z-index: 30; display: flex; align-items: center; gap: 7px;
  padding: 4px 12px 4px 4px; border: 1px solid rgba(255, 255, 255, 0.22); border-radius: 999px; background: rgba(14, 18, 26, 0.86);
  color: #f1f4f8; font-family: inherit; font-size: 12px; font-weight: 700; line-height: 1; white-space: nowrap; cursor: pointer; box-shadow: 0 3px 10px rgba(0, 0, 0, 0.35);
  animation: cut-prompt-in 0.14s ease-out; }
.cut-prompt.hidden { display: none; }
.cut-prompt:hover { background: rgba(26, 32, 44, 0.92); }
.cut-prompt-key { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 5px; background: #f2c14e; color: #2a2108;
  font-size: 12px; font-weight: 800; box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.22); }
.cut-prompt.smash .cut-prompt-key { background: #d9935a; color: #2a1608; }
.cut-prompt.strength .cut-prompt-key { background: #7fb2f0; color: #0e2240; }   /* Força (strength.js): "E Empurrar" */
.cut-prompt.off { cursor: default; color: #aab4c2; }
.cut-prompt.off .cut-prompt-key { background: #5b6472; color: #d5dbe4; }
body.mobile .cut-prompt { padding: 7px 14px 7px 7px; font-size: 14px; }
body.mobile .cut-prompt-key { width: 24px; height: 24px; font-size: 0; }
body.mobile .cut-prompt-key::before { content: "✂"; font-size: 14px; }
body.mobile .cut-prompt.smash .cut-prompt-key::before { content: "⚒"; }
@keyframes cut-prompt-in { from { opacity: 0; transform: translate(-50%, 4px); } to { opacity: 1; transform: translateX(-50%); } }

/* ---- Laboratório de Pesquisas (lab.js) ---- */
/* botão trancado até falar com o Professor Carvalho: ícone apagado + cadeado no canto */
.nav-btn.locked, .m-item.locked { position: relative; }
.nav-btn.locked img, .m-item.locked img { filter: grayscale(1) brightness(.6); }
.nav-btn.locked::after, .m-item.locked::after { content: "🔒"; position: absolute; right: 2px; bottom: 2px; font-size: 13px; line-height: 1; filter: drop-shadow(0 1px 1px #000); pointer-events: none; z-index: 3; }
.dock-btn.locked::after { right: 1px; top: 1px; bottom: auto; font-size: 12px; }
.lab-wrap { display: grid; grid-template-columns: 240px 1fr; gap: 12px; align-items: start; }
.lab-strips { display: flex; flex-direction: column; gap: 8px; }
.lab-strip { display: flex; align-items: center; gap: 10px; width: 100%; padding: 6px 10px; border-radius: 10px; border: 1px solid #3a4352; background: linear-gradient(90deg, #1d2a3a, #151c26); color: inherit; text-align: left; cursor: pointer; position: relative; overflow: hidden; font: inherit; }
.lab-strip:hover:not(:disabled) { border-color: var(--accent); }
.lab-strip.on { border-color: var(--accent); background: linear-gradient(90deg, #24476e, #17283c); box-shadow: 0 0 0 1px var(--accent) inset; }
.lab-strip.locked { cursor: not-allowed; opacity: .6; filter: grayscale(.9); }
.lab-face { width: 44px; height: 44px; flex: none; display: grid; place-items: center; overflow: hidden; border-radius: 8px; background: rgba(0,0,0,.25); }
.lab-who { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.lab-who b { font-size: 14px; } .lab-who small { font-size: 11px; opacity: .75; }
.lab-lock { margin-left: auto; font-size: 18px; }
.lab-body > .panel-sub { margin-top: 0; }
.lab-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; }
.lab-card { display: flex; flex-direction: column; gap: 8px; }
.lab-head { display: flex; gap: 10px; align-items: flex-start; }
.lab-mats { display: flex; flex-wrap: wrap; gap: 6px; }
.lab-mat { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px 2px 2px; border-radius: 999px; background: rgba(76,175,80,.15); border: 1px solid rgba(76,175,80,.45); font-size: 12px; font-weight: 700; }
.lab-mat img { width: 24px; height: 24px; image-rendering: pixelated; }
.lab-mat.short { background: rgba(255,77,77,.12); border-color: rgba(255,77,77,.5); color: #ff9a9a; }
.lab-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.lab-stepper { display: flex; align-items: center; gap: 4px; }
.lab-qty { width: 64px; text-align: center; padding: 4px; border-radius: 6px; border: 1px solid #3a4352; background: #0f141b; color: inherit; font: inherit; }
.lab-cost { margin: 0 0 0 auto; display: inline-flex; align-items: center; gap: 4px; font-family: var(--mono); color: var(--gold); font-weight: 700; }
.lab-cost .red { color: #ff6b6b; }
body.mobile .lab-wrap, .lab-wrap.narrow { grid-template-columns: 1fr; }
@media (max-width: 700px) { .lab-wrap { grid-template-columns: 1fr; } }

/* Pokébola em que o Pokémon foi capturado (ui.js ballIcon): ao lado do nome; no PC, no canto do quadrinho */
.mon-ball { width: 26px; height: 26px; flex: none; image-rendering: pixelated; vertical-align: -8px; margin: -6px -2px -6px -5px; object-fit: contain; }   /* a imagem (32 px) tem margem: a bola em si fica com ~12 px */
.mc2-name .mon-ball { width: 24px; height: 24px; vertical-align: -7px; }
.pcx-ball { position: absolute; top: -1px; right: 0; width: 22px; height: 22px; margin: 0; }
.pcx-mon.fav .pcx-ball { right: 14px; }   /* a estrela de favorito fica no canto */
.pcx-sel .mon-ball { width: 24px; height: 24px; }
/* felicidade no card do Pokémon (abaixo da XP) */
.mc2-happy { grid-template-columns: 10px auto 1fr auto; }
.mc2-happy > span:first-child { color: #ff8fb8; text-align: center; }
.mc2-happy .mc2-bar > div { background: linear-gradient(90deg, #d8578e, #ff9cc6); }
.mc2-happy.ok small { color: #ff9cc6; font-weight: 700; }
/* Auto ligado e o jogador clicou em algo: confirmação embaixo do botão Auto (autoask.js) */
.auto-ask { position: fixed; z-index: 85; width: max-content; max-width: min(280px, calc(100vw - 16px)); background: #141a26; color: #e8ecf5; border: 2px solid var(--accent, #f5c518);
  border-radius: 10px; padding: 8px 10px; box-shadow: 0 8px 22px rgba(0,0,0,.55); font-size: 12.5px; animation: tut-pop .18s ease-out; }
.auto-ask::before { content: ""; position: absolute; left: var(--ax, 50%); top: -9px; margin-left: -8px; border: 8px solid transparent; border-top: 0; border-bottom: 9px solid var(--accent, #f5c518); }
.auto-ask.up::before { top: auto; bottom: -9px; border-bottom: 0; border-top: 9px solid var(--accent, #f5c518); }
.auto-ask-txt { font-weight: 600; line-height: 1.35; margin-bottom: 7px; text-align: center; }
.auto-ask-btns { display: flex; gap: 6px; justify-content: center; }
/* mapa grande: botões dentro dele (nomes das rotas / cidades e zoom) — panels.js MapPanel.tools */
.mp-tools { position: absolute; top: 8px; right: 8px; z-index: 2; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; max-width: calc(100% - 16px); }
.mp-tool { background: rgba(10,14,24,.85); color: #8a93a8; border: 1px solid #3a4560; border-radius: 7px; padding: 4px 9px; font: 700 12px var(--font, Inter); cursor: pointer; text-decoration: line-through; }
.mp-tool.on { color: #fff; border-color: var(--accent, #f5c518); text-decoration: none; }
.mp-tool.mp-zoom { color: #fff; text-decoration: none; min-width: 30px; padding: 4px 0; font-size: 15px; line-height: 1; }
.mp-tool:hover { border-color: var(--accent, #f5c518); }
/* minimapa da barra de baixo: + / − no canto */
.mm-zoom { position: absolute; top: 3px; right: 3px; display: flex; flex-direction: column; gap: 2px; z-index: 1; }
.mm-zoom button { width: 18px; height: 18px; padding: 0; border-radius: 4px; border: 1px solid #5b6474; background: rgba(6,7,11,.8); color: #fff; font: 800 13px/1 var(--font, Inter); cursor: pointer; }
.mm-zoom button:hover { border-color: var(--accent, #f5c518); }
/* HMs da equipe embaixo da barra de nível (travel.js): Corte / Surf / Esmagar Rocha informam, Fly / Teleport são botões */
.dock { position: relative; }   /* as guias dos HMs (.field-moves) ficam presas em cima da barra */
/* HMs como guias do Chrome: cada botão é uma guia com o topo arredondado e a base colada na barra (sem caixa em volta).
   Fundo, linha e cor da curva copiados da barra pelo travel.js (--fm-bg, --fm-line, --fm-bw, --fm-fill): servem para qualquer tema */
.dock > .field-moves { position: absolute; left: 50%; bottom: calc(100% - var(--fm-bw, 2px)); transform: translateX(-50%); z-index: 20; flex-wrap: nowrap; align-items: flex-end;
  justify-content: center; gap: 6px; max-width: calc(100vw - 16px); padding: 0 10px; background: none; border: 0; }
.dock > .field-moves .fm-btn { height: 30px; padding: 0 13px 0 7px; border-radius: 15px 15px 0 0; background: var(--fm-bg, #3b414d);   /* ativos (Fly, Teleport): maiores */
  border: var(--fm-bw, 2px) solid var(--fm-line, #535b6a); border-bottom: none; box-shadow: none; }
.dock > .field-moves .fm-btn:hover { filter: brightness(1.15); }
.dock > .field-moves .fm-btn.fm-hm { height: 23px; padding: 0 10px 0 5px; font-size: 10.5px; border-radius: 12px 12px 0 0; }   /* passivos (Corte, Surf...): menores que os ativos */
.dock > .field-moves .fm-btn.fm-hm img { width: 16px; height: 16px; }
.dock > .field-moves .fm-btn::before, .dock > .field-moves .fm-btn::after { content: ""; position: absolute; bottom: 0; width: 6px; height: 6px; pointer-events: none; }
.dock > .field-moves .fm-btn::before { left: calc(-6px - var(--fm-bw, 2px)); background: radial-gradient(circle at 0 0, transparent 5.5px, var(--fm-fill, #3b414d) 6px); }   /* curvinha para fora, como no Chrome */
.dock > .field-moves .fm-btn::after { right: calc(-6px - var(--fm-bw, 2px)); background: radial-gradient(circle at 100% 0, transparent 5.5px, var(--fm-fill, #3b414d) 6px); }
/* HM travado pela progressão (travel.js): guia escura, imagem cinza e cadeado no canto */
.fm-btn.locked { cursor: not-allowed; }
.dock > .field-moves .fm-btn.locked { box-shadow: inset 0 0 0 40px rgba(4,6,10,.45); }
.dock > .field-moves .fm-btn.locked:hover { filter: none; }
.fm-btn.locked img { filter: grayscale(1); }
.fm-btn.locked .fm-name { opacity: .6; }
body:has(#field-moves:not(.hidden)) .hud-bottom-center { bottom: 38px; }   /* as guias ocupam o pé do mapa: o que fica ali sobe */
.fm-lock { position: absolute; top: -7px; right: -6px; z-index: 1; font-size: 11px; line-height: 1; filter: drop-shadow(0 1px 1px rgba(0,0,0,.8)); }
.fm-btn.fm-hm { cursor: default; height: 24px; padding: 0 8px 0 3px; font-size: 11px; }
.fm-btn.fm-hm img { width: 18px; height: 18px; }
.fm-btn.fm-hm:hover { border-color: var(--hud-line); }
.theme-gba .fm-btn.fm-hm:hover { border-color: var(--gba-line); }
.lvl-bar { width: 280px; }   /* rótulo "NÍVEL DO POKÉMON": um pouco mais larga para a barra de XP não encolher */
/* barra "NÍVEL DO POKÉMON" fora do HUD: embaixo ficam só os HMs (a linha .lvl-row continua: o botão de decorar da sede da guilda entra nela) */
.hud-bottom-center .lvl-bar { display: none !important; }
/* counter da hunt (panels.js): selo no card e contorno no ícone */
.zone-counter-chip { margin-left: 6px; font-size: 10px; padding: 1px 6px; background: rgba(255,90,90,.15); border: 1px solid rgba(255,110,110,.55); color: #ffb3b3; }
.zone-mons .zone-counter { outline: 2px solid rgba(255,110,110,.85); outline-offset: -2px; border-radius: 6px; }

/* ---- cura no Centro Pokémon (centerheal.js): Joy + máquina com as pokébolas piscando, como no anime */
.ch-box { width: min(440px, calc(100% - 30px)); }
.ch-scene { display: flex; align-items: flex-end; justify-content: center; gap: 18px; padding: 18px 16px 8px; background: radial-gradient(ellipse at 50% 100%, rgba(255,140,170,.18), transparent 70%); }
.ch-joy { flex: none; }
.ch-machine { position: relative; padding: 10px 12px 12px; border-radius: 14px 14px 8px 8px; background: linear-gradient(180deg, #f3f5f8, #c9ced8); border: 2px solid #8a93a3; box-shadow: inset 0 -6px 0 rgba(0,0,0,.12), 0 6px 18px rgba(0,0,0,.35); }
.ch-lights { display: flex; justify-content: center; gap: 8px; margin-bottom: 8px; }
.ch-lights i { width: 10px; height: 10px; border-radius: 50%; background: #5a2030; box-shadow: inset 0 0 0 1px rgba(0,0,0,.3); }
.ch-tray { display: grid; grid-template-columns: repeat(3, 34px); gap: 6px; padding: 8px; border-radius: 8px; background: #2b3140; box-shadow: inset 0 3px 6px rgba(0,0,0,.5); }
.ch-slot { width: 34px; height: 34px; border-radius: 50%; background: radial-gradient(circle at 50% 40%, #3a4152, #1d222c); display: grid; place-items: center; }
.ch-ball { opacity: 0; transform: translateY(-14px) scale(.6); transition: opacity .15s, transform .2s cubic-bezier(.3,1.6,.5,1); display: grid; place-items: center; border-radius: 50%; }
.ch-ball.in { opacity: 1; transform: none; }
.ch-ball-ic { width: 26px; height: 26px; image-rendering: pixelated; }
.ch-who { padding: 4px 16px 0; font-weight: 800; color: #ff9ab8; }
.ch-text { padding: 2px 16px 10px; min-height: 40px; line-height: 1.35; }
.ch-bar { margin: 0 16px; height: 6px; border-radius: 3px; background: rgba(255,255,255,.08); overflow: hidden; }
.ch-bar i { display: block; width: 0; height: 100%; background: linear-gradient(90deg, #ff6f9a, #ffd0dd); }
.ch-foot { display: flex; justify-content: flex-end; padding: 12px 16px 14px; }
.ch-box.healing .ch-ball { animation: chGlow .5s ease-in-out infinite; }
.ch-box.healing .ch-ball:nth-child(1) { animation-delay: 0s; }
.ch-box.healing .ch-slot:nth-child(2n) .ch-ball { animation-delay: .17s; }
.ch-box.healing .ch-slot:nth-child(3n) .ch-ball { animation-delay: .33s; }
.ch-box.healing .ch-lights i { animation: chLight .5s steps(1) infinite; }
.ch-box.healing .ch-lights i:nth-child(2) { animation-delay: .17s; }
.ch-box.healing .ch-lights i:nth-child(3) { animation-delay: .33s; }
.ch-box.done .ch-lights i { background: #3ad35b; box-shadow: 0 0 8px #3ad35b; }
.ch-box.done .ch-ball { box-shadow: 0 0 0 2px rgba(255,255,255,.9), 0 0 12px rgba(255,255,255,.8); animation: chDone .45s ease-out; }
@keyframes chGlow { 0%, 100% { box-shadow: 0 0 0 0 rgba(255,120,160,0); filter: brightness(1); } 50% { box-shadow: 0 0 12px 4px rgba(255,120,160,.85); filter: brightness(1.6); } }
@keyframes chLight { 0% { background: #ff4d7a; box-shadow: 0 0 8px #ff4d7a; } 50% { background: #5a2030; box-shadow: none; } }
@keyframes chDone { 0% { transform: scale(1.35); } 100% { transform: none; } }
.heal-machine-ch { display: flex; justify-content: center; margin: 6px 0 10px; }
.ch-ball.ko { filter: grayscale(1) brightness(.55); }
.ch-foot { gap: 8px; } .ch-pay { display: inline-flex; align-items: center; gap: 6px; }
/* hunt ainda não descoberta (panels.js groupCard): cadeado no lugar do Pokémon e "?" no lugar das espécies */
.zone-card.zone-locked { opacity: .82; }
.zone-card.zone-locked:hover { opacity: 1; }
.zone-lock { width: 56px; height: 56px; flex: none; display: grid; place-items: center; font-size: 26px; border-radius: 10px; background: rgba(0,0,0,.35); border: 1px dashed rgba(255,255,255,.18); }
.zone-unk { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: rgba(0,0,0,.35); border: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.45); font-weight: 800; font-size: 13px; }
.zone-lock-tip { display: block; margin-top: 4px; }
/* tooltip de hunt bloqueada (panels.js huntReqTip) */
.hz-tip { max-width: 300px; display: flex; flex-direction: column; gap: 4px; }
.hz-tip-t { font-weight: 800; }
.hz-tip-h { margin-top: 4px; font-weight: 700; font-size: 12px; }
.hz-req { font-size: 12px; }
.hz-req.ok b { color: #3ad35b; } .hz-req.no b { color: #ff6b6b; }

/* ---- Apoie o jogo: doação por Pix que vira diamantes (doacoes.js) ---- */
.doa-card { border-color: rgba(120, 180, 255, .55); background: linear-gradient(90deg, rgba(90, 160, 255, .14), transparent); margin-bottom: 8px; }
.doa { display: flex; flex-direction: column; gap: 10px; width: 100%; min-width: 0; }
.doa-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; }
.doa-pac { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 12px 6px 10px; border-radius: 10px; cursor: pointer;
  background: #1b2232; border: 2px solid #2f3a52; color: inherit; font: inherit; transition: border-color .12s, transform .12s; }
.doa-pac:hover { border-color: #6fb3ff; transform: translateY(-2px); }
.doa-gems { display: flex; align-items: center; gap: 5px; }
.doa-gems img, .doa-res img { width: 22px; height: 22px; image-rendering: pixelated; }
.doa-gems b { font-family: var(--mono); font-size: 17px; color: #9fd0ff; }
.doa-val { font-weight: 800; font-size: 15px; color: #ffe27a; }
.doa-bonus { position: absolute; top: -8px; right: -6px; padding: 1px 6px; border-radius: 999px; background: #3ad35b; color: #10331b; font-size: 11px; font-weight: 800; }
.doa-hist { display: flex; flex-direction: column; gap: 3px; font-size: 12px; }
.doa-hrow { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 6px; padding: 3px 6px; border-radius: 6px; background: rgba(255, 255, 255, .04); }
.doa-st.aprovado { color: #3ad35b; } .doa-st.pendente { color: #ffd166; } .doa-st.cancelado, .doa-st.expirado, .doa-st.estornado, .doa-st.erro { color: #ff8a8a; }
.doa-pix { align-items: center; text-align: center; }
.doa-res { display: flex; align-items: center; gap: 6px; font-size: 15px; }
.doa-qr { width: 220px; height: 220px; max-width: 70vw; max-height: 70vw; background: #fff; padding: 8px; border-radius: 8px; image-rendering: pixelated; }
.doa-code { width: 100%; font-family: var(--mono); font-size: 11px; resize: none; background: #11161f; color: #cfe3ff; border: 1px solid #2f3a52; border-radius: 6px; padding: 6px; word-break: break-all; }
.doa-wait { padding: 6px 10px; border-radius: 8px; background: rgba(255, 209, 102, .12); color: #ffd166; font-weight: 700; }
.doa-wait.ok { background: rgba(58, 211, 91, .14); color: #3ad35b; } .doa-wait.bad { background: rgba(255, 107, 107, .12); color: #ff8a8a; }
/* Loja de Diamantes: título de seção (Cores do nome) */
.dshop-sec { margin: 16px 0 2px; font-size: 16px; font-weight: 800; color: #9fd0ff; }

/* ---- Cassino (cassino.js): Roleta de Pokébolas */
.cas-box { width: min(640px, calc(100% - 30px)); }
.cas-main { display: flex; gap: 18px; padding: 14px 16px 6px; align-items: center; flex-wrap: wrap; justify-content: center; }
.cas-wheel { position: relative; width: 250px; height: 250px; flex: 0 0 auto; }
.cas-disc { position: absolute; inset: 0; border-radius: 50%; border: 6px solid #e0b040; box-shadow: 0 0 0 3px #5a3a08, 0 8px 24px rgba(0,0,0,.55), inset 0 0 18px rgba(0,0,0,.45); }
.cas-ic { position: absolute; left: 50%; top: 50%; width: 30px; height: 30px; margin: -15px 0 0 -15px; image-rendering: pixelated; filter: drop-shadow(0 1px 1px rgba(0,0,0,.7)); }
.cas-ic.lose { width: 34px; height: 34px; margin: -17px 0 0 -17px; }
.cas-hub { position: absolute; left: 50%; top: 50%; width: 46px; height: 46px; margin: -23px 0 0 -23px; border-radius: 50%; background: radial-gradient(#3a2a10, #1a1208); border: 3px solid #e0b040; display: grid; place-items: center; }
.cas-hub img { width: 26px; height: 26px; }
.cas-pointer { position: absolute; left: 50%; top: -10px; z-index: 2; margin-left: -11px; width: 0; height: 0; border-left: 11px solid transparent; border-right: 11px solid transparent; border-top: 22px solid #ffd166; filter: drop-shadow(0 2px 2px rgba(0,0,0,.7)); }
.cas-wheel.boom { animation: casShake .45s ease-out; }
@keyframes casShake { 0%, 100% { transform: none; } 20% { transform: translate(-5px, 2px); } 40% { transform: translate(5px, -2px); } 60% { transform: translate(-3px, 1px); } 80% { transform: translate(2px, 0); } }
.cas-side { flex: 1 1 260px; min-width: 240px; display: flex; flex-direction: column; gap: 8px; }
.cas-table { display: grid; gap: 3px; background: rgba(255,255,255,.04); border-radius: 8px; padding: 6px 8px; }
.cas-row { display: grid; grid-template-columns: 24px 1fr 44px 46px; align-items: center; gap: 6px; font-size: 13px; }
.cas-row img { width: 22px; height: 22px; image-rendering: pixelated; }
.cas-row .cas-pct { color: #9aa6b8; text-align: right; }
.cas-row b { text-align: right; color: #7fe08a; }
.cas-row.lose b { color: #ff7b7b; }
.cas-gold { display: flex; align-items: center; gap: 6px; font-size: 14px; }
.cas-gold img { width: 18px; height: 18px; }
.cas-gold b { color: #ffd166; }
.cas-bet { display: flex; gap: 5px; flex-wrap: wrap; align-items: center; }
.cas-input { width: 110px; padding: 6px 8px; border-radius: 6px; border: 1px solid var(--frame-2); background: #0b0e14; color: #f1f4f8; font: inherit; font-weight: 700; }
.cas-limits, .cas-lucro { font-size: 11.5px; color: #9aa6b8; }
.cas-msg { margin: 6px 16px 0; padding: 9px 12px; border-radius: 8px; background: rgba(255,255,255,.05); text-align: center; font-weight: 700; min-height: 20px; }
.cas-msg.good { background: rgba(60,180,90,.18); color: #8ff0a0; }
.cas-msg.bad { background: rgba(220,60,60,.16); color: #ff9a9a; }
.cas-msg.jackpot { background: linear-gradient(90deg, rgba(142,68,173,.45), rgba(255,209,102,.35)); color: #fff3c4; animation: casGlow 1s ease-in-out 3; }
@keyframes casGlow { 50% { box-shadow: 0 0 22px rgba(255,209,102,.7); } }
.cas-hist-wrap { padding: 8px 16px 0; }
.cas-hist-wrap small { color: #9aa6b8; }
.cas-hist { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 4px; }
.cas-h { display: inline-flex; align-items: center; gap: 3px; padding: 2px 7px 2px 3px; border-radius: 999px; font-size: 11.5px; font-weight: 700; background: rgba(255,255,255,.05); }
.cas-h img { width: 18px; height: 18px; image-rendering: pixelated; }
.cas-h.cas-ganho { color: #8ff0a0; } .cas-h.cas-perda { color: #ff9a9a; }
.cas-empty { font-size: 12px; color: #6b7686; }
.cas-spin { margin-right: auto; min-width: 120px; }
body.mobile .cas-wheel { width: 210px; height: 210px; --r: 78px; }
img.cas-sheet { object-fit: cover; object-position: 0 50%; }   /* ícone de Pokémon do menu (assets/icons: 2 quadros) */
/* batalha: Poké Bola ao lado do nome do selvagem que já está na Pokédex (panels.js caughtMark) */
.hpp-caught { position: absolute; width: 20px; height: 20px; image-rendering: pixelated; filter: drop-shadow(1px 1px 0 rgba(0,0,0,.25)); }
.hpp.hpp-big.wild .hpp-caught { left: 40px; top: 17px; }
.hpp.hpp-big.wild.got .hpp-name { left: 64px; max-width: 136px; }
.hpp.foe .hpp-caught { left: 12px; top: 14px; }
.hpp.foe.got .hpp-name { left: 36px; max-width: 120px; }
/* tela de batalha: Poké Bola balançando no selvagem; acende verde (capturou) ou vermelha (escapou) */
.scene-ball { position: absolute; left: 50%; bottom: 26px; width: 40px; height: 40px; margin-left: -20px; z-index: 3; animation: sb-drop .35s ease-out, sb-shake .65s ease-in-out .35s; }
.pv-mon .scene-ball img, .battle-scene .pv-mon .scene-ball img { position: static; width: 40px; height: 40px; image-rendering: pixelated; filter: none; animation: none; }
/* só o botão acende: na folha de 32 px ele fica em (13,5; 19,5); com 40 px = (17; 24,4) */
.scene-ball .sb-light { position: absolute; left: 14.5px; top: 22px; width: 5px; height: 5px; border-radius: 50%; opacity: 0; }
.scene-ball.lit .sb-light { opacity: .8; animation: sb-pulse .45s ease-in-out infinite alternate; }
.scene-ball.ok .sb-light { background: rgb(70, 235, 95); box-shadow: 0 0 3px 1px rgba(70, 235, 95, .45); }
.scene-ball.fail .sb-light { background: rgb(255, 60, 50); box-shadow: 0 0 3px 1px rgba(255, 60, 50, .45); }
.scene-ball.fail.lit { animation: sb-out .4s ease-in .9s forwards; }
.scene-caught { position: absolute; left: 50%; bottom: 70px; transform: translateX(-50%); z-index: 4; font: 800 20px "Nunito", var(--font); color: #7dff8c; text-shadow: 2px 2px 0 #1b5e20, -1px -1px 0 #1b5e20; white-space: nowrap; animation: sb-rise 1.3s ease-out forwards; }
@keyframes sb-drop { from { transform: translateY(-120px) scale(.6); } to { transform: none; } }
@keyframes sb-shake { 0%, 100% { transform: rotate(0); } 20% { transform: rotate(-18deg); } 45% { transform: rotate(16deg); } 70% { transform: rotate(-10deg); } }
@keyframes sb-pulse { from { opacity: .55; } to { opacity: .85; } }
@keyframes sb-out { to { opacity: 0; transform: scale(.7); } }
@keyframes sb-rise { from { opacity: 1; transform: translate(-50%, 0); } to { opacity: 0; transform: translate(-50%, -46px); } }
@media (prefers-reduced-motion: reduce) { .scene-ball, .scene-ball.lit .sb-light, .scene-caught { animation: none; } }
/* menu de batalha pelo teclado (kbnav.js): botão escolhido com setas / WASD */
.bt-btn.kb-sel, .pvp-ov button.kb-sel { outline: 3px solid #ffd84a; outline-offset: 1px; box-shadow: 0 0 0 5px rgba(255, 216, 74, .25), 0 0 14px rgba(255, 216, 74, .55); position: relative; z-index: 1; }
.bt-btn.kb-sel::before { content: "▶"; position: absolute; left: -2px; top: 50%; transform: translate(-100%, -50%); color: #ffd84a; font-size: 12px; text-shadow: 1px 1px 0 #000; pointer-events: none; }
/* Automação: seções que escondem (autocfg.js fold) — começam fechadas */
.ac-foldable { gap: 0; }
.ac-foldable.open { gap: 10px; }
.ac-fold-head { cursor: pointer; user-select: none; }
.ac-fold-head.ac-row .ac-label { margin-right: auto; }
.ac-fold { flex: 0 0 auto; width: 22px; height: 22px; display: grid; place-items: center; padding: 0; border: 1px solid #2a3244; border-radius: 6px; background: #1d2433; color: #9aa6bf; font-size: 15px; line-height: 1; cursor: pointer; }
.ac-fold:hover { color: #fff; border-color: #3d4a66; }
.ac-fold-body { display: flex; flex-direction: column; gap: 10px; }
/* "Comprar automaticamente" (Premium) dentro de Poção e Revive */
.ac-refill { display: flex; flex-direction: column; gap: 8px; margin-top: 2px; padding-top: 10px; border-top: 1px dashed #2a3244; }
.ac-refill-title { display: inline-flex; align-items: center; gap: 8px; }
.ac-refill.locked .switch { opacity: .55; }
/* Analyzer (analyzer.js): botão entre o cartão do treinador e o "Explorando" (canto de cima à esquerda) e o relatório da caçada */
.hud-analyzer { align-self: flex-start; display: inline-flex; align-items: center; gap: 5px; padding: 4px 12px; background: var(--hud-bg); border: 1px solid var(--hud-line); border-radius: 8px; color: inherit; font: 800 12px "Inter", sans-serif; letter-spacing: .3px; cursor: pointer; }
.hud-analyzer:hover { filter: brightness(1.25); }
.theme-gba .hud-analyzer { font-family: var(--gba-font); font-size: 13px; color: #fff; padding: 4px 12px; }
.an-box { display: flex; flex-direction: column; gap: 10px; }
.modal-box:has(.an-box) { width: min(860px, 94vw); }   /* o Analyzer usa a janela mais larga */
.an-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.an-head small { display: block; color: #8b95a8; font-size: 11px; }
.an-btns { display: flex; gap: 6px; }
.an-big { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.an-stat { background: #151a26; border: 1px solid #2a3244; border-radius: 10px; padding: 8px 10px; display: flex; flex-direction: column; gap: 2px; }
.an-stat small { color: #8b95a8; font-size: 10.5px; text-transform: uppercase; letter-spacing: .6px; font-weight: 700; }
.an-stat b { font-size: 18px; } .an-stat i { font-style: normal; color: #8b95a8; font-size: 11px; }
.an-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; }
.an-card { background: #151a26; border: 1px solid #2a3244; border-radius: 10px; padding: 9px 10px; display: flex; flex-direction: column; gap: 4px; }
.an-title { font-weight: 800; font-size: 12.5px; margin-bottom: 2px; }
.an-kv { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; } .an-kv span { color: #a7b0c2; } .an-kv b { text-align: right; }
.an-kv.green b, .an-big .green { color: #4ade80; } .an-kv.red b, .an-big .red, .an-item .red { color: #f87171; } .an-kv.gold b { color: #f5c518; } .an-item .green { color: #4ade80; }
.an-item { display: grid; grid-template-columns: 20px 1fr auto; align-items: center; gap: 6px; font-size: 12px; } .an-ic { width: 20px; height: 20px; }
.an-mons { display: flex; flex-wrap: wrap; gap: 2px; } .an-empty { color: #8b95a8; font-size: 12px; }
@media (max-width: 640px) { .an-big { grid-template-columns: repeat(2, 1fr); } }
/* card "Vitória!" compacto (panels.js victoryCard): 1ª linha vitória + XP + gold, 2ª linha EVs · Exp Share · loot */
.victory-card { gap: 7px; padding: 4px 10px 4px 5px; margin-bottom: 4px; border-radius: 8px; }
.theme-gba .victory-card { font-size: 12px; border-width: 2px; border-radius: 7px; }
.victory-card .vc-body { gap: 1px; }
.victory-card .vc-row { gap: 2px 9px; flex-wrap: nowrap; white-space: nowrap; }
.victory-card .vc-main .vc-stat + .vc-stat::before, .victory-card .vc-extra .vc-stat + .vc-stat::before { margin-right: 6px; }
.victory-card .vc-extra .vc-stat + .vc-stat::before { content: "·"; opacity: .5; }
.victory-card .vc-win { color: #7ee06a; font-size: 13px; }
.theme-gba .victory-card .vc-win { color: #2f8a28; font-size: 13px; text-shadow: none; }
body.theme-gba.skin-dark .victory-card .vc-win { color: #7ee2a0; }
.victory-card .vc-foe { color: #aab3c5; font-size: 11px; margin-right: 2px; }
.theme-gba .victory-card .vc-foe { color: #5a5a6a; } body.theme-gba.skin-dark .victory-card .vc-foe { color: #a9b0c2; }
.victory-card .vc-extra { font-size: 11px; }
.victory-card .vc-extra img, .victory-card .vc-stat img { width: 14px; height: 14px; }
/* captura na tela de batalha: o selvagem entra na bola (brilho vermelho e some) e, se escapar, sai de novo */
.pv-mon.in-ball > img { animation: sb-absorb .3s ease-in forwards; }
.pv-mon.out-ball > img { animation: sb-release .35s ease-out; }
@keyframes sb-absorb { 0% { filter: none; opacity: 1; transform: scale(1); } 45% { filter: brightness(1.6) sepia(1) saturate(6) hue-rotate(-50deg) drop-shadow(0 0 10px #ff3b30); opacity: 1; } 100% { filter: brightness(2) sepia(1) saturate(8) hue-rotate(-50deg) drop-shadow(0 0 14px #ff3b30); opacity: 0; transform: scale(.25) translateY(60%); } }
@keyframes sb-release { 0% { filter: brightness(2) sepia(1) saturate(8) hue-rotate(-50deg) drop-shadow(0 0 14px #ff3b30); opacity: 0; transform: scale(.25) translateY(60%); } 60% { opacity: 1; } 100% { filter: none; opacity: 1; transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .pv-mon.in-ball > img { animation: none; opacity: 0; } .pv-mon.out-ball > img { animation: none; } }
/* card de hunt: o que precisa para chegar (panels.js huntReqChips) */
.zone-reqs { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.zone-req { font-size: 10px; font-weight: 700; line-height: 1; padding: 3px 7px; border-radius: 999px; border: 1px solid; white-space: nowrap; }
.zone-req.ok { color: #7ff0a4; border-color: rgba(127,240,164,.45); background: rgba(58,211,91,.12); }
.zone-req.no { color: #ff9a9a; border-color: rgba(232,62,77,.5); background: rgba(232,62,77,.14); }
.zone-req.cave { color: #c9b8ff; border-color: rgba(160,130,255,.45); background: rgba(120,90,220,.14); }
/* topo: botão de configurar o Auto, ao lado da pílula AUTO (index.html .auto-cfg) */
.hud-top-center .auto-cfg { width: 34px; height: 34px; margin-top: 0; border-radius: 999px; padding: 0; display: grid; place-items: center; cursor: pointer; box-shadow: 0 4px 12px rgba(0,0,0,.35); box-sizing: border-box; transition: border-color .2s, transform .1s; }
.hud-top-center .auto-cfg img { width: 26px; height: 26px; image-rendering: pixelated; pointer-events: none; }
.hud-top-center .auto-cfg:hover { border-color: #5b6475; transform: translateY(-1px); }
/* menu PvP (pvp.js): abas Ranqueado / Casual / Treino / Histórico */
.pvp-menu { display: flex; flex-direction: column; gap: 12px; min-width: 0; max-width: 100%; }
.pvp-tabs { display: flex; gap: 6px; flex-wrap: wrap; padding: 4px; border-radius: 12px; background: rgba(0,0,0,.25); }
.pvp-tab { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 7px 8px; border-radius: 9px; border: 1px solid transparent; background: transparent; color: #aab3c7; font-weight: 700; font-size: 13px; cursor: pointer; white-space: nowrap; }
.pvp-tab small { font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; padding: 2px 5px; border-radius: 999px; background: rgba(255,255,255,.08); color: #7d869a; }
.pvp-tab:hover { color: #e6eaf3; background: rgba(255,255,255,.04); }
.pvp-tab.on { color: #1b1405; background: linear-gradient(180deg, #ffd56a, #f2b93a); border-color: #ffe39a; box-shadow: 0 2px 8px rgba(242,185,58,.35); }
.pvp-tab.on small { background: rgba(0,0,0,.18); color: #3b2c08; }
.pvp-soon { text-align: center; padding: 28px 16px; border-radius: 12px; border: 1px dashed #2c3550; }
.pvp-soon-ic { font-size: 34px; } .pvp-soon b { font-size: 16px; display: block; margin: 6px 0; } .pvp-soon p { margin: 0 auto; max-width: 440px; }
.pvp-treino { display: flex; flex-direction: column; gap: 12px; }
/* topo do treino */
.pvp-hero { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; background: radial-gradient(120% 140% at 0% 0%, rgba(96,165,250,.22), rgba(20,26,40,.95) 60%); border: 1px solid rgba(96,165,250,.35); }
.pvp-hero-ic { flex: 0 0 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-size: 22px; background: rgba(96,165,250,.18); border: 1px solid rgba(96,165,250,.45); }
.pvp-hero-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.pvp-hero-t b { font-size: 15px; color: #f3f6fb; } .pvp-hero-t small { font-size: 11.5px; color: #9aa6bd; line-height: 1.35; }
.pvp-hero-lv { font: 800 11px var(--mono); color: #93c5fd; }
.pvp-stats { display: flex; gap: 6px; }
.pvp-stat { min-width: 62px; padding: 6px 8px; border-radius: 10px; text-align: center; background: rgba(0,0,0,.28); border: 1px solid rgba(255,255,255,.07); display: flex; flex-direction: column; }
.pvp-stat b { font: 800 20px var(--mono); line-height: 1.1; } .pvp-stat small { font-size: 10px; color: #8a93a6; text-transform: uppercase; letter-spacing: .5px; }
.pvp-stat.w b { color: #7ff0a4; } .pvp-stat.l b { color: #ff9a9a; }
.pvp-h { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; color: #8a93a6; margin-bottom: -4px; }
/* cards de dificuldade (cor em --c) */
.pvp-difs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; }
.pvp-dif { --c: #94a3b8; position: relative; display: flex; flex-direction: column; align-items: center; gap: 3px; text-align: center; padding: 10px 6px 9px; border-radius: 12px; border: 1px solid #2a3248; background: linear-gradient(180deg, color-mix(in srgb, var(--c) 10%, transparent), rgba(255,255,255,.02)); color: #cfd6e6; cursor: pointer; overflow: hidden; transition: transform .12s, border-color .15s, box-shadow .15s; }
.pvp-dif::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: var(--c); opacity: .85; }
.pvp-dif.d-facil { --c: #4ade80; } .pvp-dif.d-normal { --c: #60a5fa; } .pvp-dif.d-dificil { --c: #fb923c; } .pvp-dif.d-mestre { --c: #f87171; } .pvp-dif.d-custom { --c: #f2c14e; }
.pvp-dif:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--c) 55%, #2a3248); }
.pvp-dif.on { border-color: var(--c); box-shadow: 0 0 0 1px var(--c), 0 6px 16px color-mix(in srgb, var(--c) 25%, transparent); background: linear-gradient(180deg, color-mix(in srgb, var(--c) 22%, transparent), rgba(255,255,255,.02)); }
.pvp-dif-ic { font-size: 18px; line-height: 1; } .pvp-dif-n { font-size: 13.5px; color: #f3f6fb; }
.pvp-dif-lv { font: 800 10.5px var(--mono); color: var(--c); padding: 2px 7px; border-radius: 999px; background: rgba(0,0,0,.3); white-space: nowrap; }
.pvp-dif small { font-size: 10.5px; color: #96a0b5; line-height: 1.3; margin-top: 2px; }
/* personalizado */
.pvp-custom { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; padding: 12px 14px 14px; border-radius: 14px; background: rgba(0,0,0,.25); border: 1px solid rgba(242,193,78,.25); }
.pvp-custom-h { grid-column: 1 / -1; font-size: 12px; font-weight: 800; color: #f2c14e; text-transform: uppercase; letter-spacing: 1px; margin-bottom: -4px; }
.pvp-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; } .pvp-field.wide { grid-column: 1 / -1; }
.pvp-field-top { display: flex; align-items: center; justify-content: space-between; }
.pvp-field-l { font-size: 12px; font-weight: 700; color: #cfd6e6; }
.pvp-pill { font: 800 12px var(--mono); color: #f2c14e; padding: 2px 9px; border-radius: 999px; background: rgba(242,193,78,.12); border: 1px solid rgba(242,193,78,.35); }
.pvp-range { width: 100%; accent-color: #f2c14e; cursor: pointer; }
.pvp-seg { display: flex; border: 1px solid #2c3550; border-radius: 9px; overflow: hidden; background: rgba(255,255,255,.02); }
.pvp-seg button { flex: 1; padding: 6px 4px; border: 0; border-right: 1px solid #2c3550; background: transparent; color: #cfd6e6; font-weight: 700; font-size: 12px; cursor: pointer; white-space: nowrap; }
.pvp-seg button:last-child { border-right: 0; } .pvp-seg button:hover { background: rgba(255,255,255,.05); }
.pvp-seg button.on { background: linear-gradient(180deg, rgba(242,193,78,.32), rgba(242,193,78,.16)); color: #ffd56a; }
.pvp-ia { display: flex; flex-direction: column; gap: 4px; }
.pvp-hint { font-size: 11px; color: #8a93a6; line-height: 1.35; }
/* monotype: centralizado, caixa "Sim" + botão do tipo (abre a lista) */
.pvp-mono { align-items: center; text-align: center; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.06); }
.pvp-mono-row { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 34px; }
.pvp-check { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 14px; border-radius: 9px; border: 1px solid #2c3550; background: rgba(255,255,255,.03); cursor: pointer; font-size: 13px; font-weight: 700; color: #cfd6e6; user-select: none; }
.pvp-check.on { border-color: #f2c14e; color: #ffd56a; background: rgba(242,193,78,.1); }
.pvp-check input { width: 16px; height: 16px; margin: 0; accent-color: #f2c14e; cursor: pointer; }
.pvp-dd-wrap { position: relative; }
.pvp-dd { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 10px 0 8px; border-radius: 9px; border: 1px solid #46557a; background: rgba(255,255,255,.04); color: #cfd6e6; cursor: pointer; }
.pvp-dd:hover, .pvp-dd.open { border-color: #f2c14e; }
.pvp-dd-ph { font-size: 12px; font-weight: 700; color: #aab3c7; padding: 0 2px; }
.pvp-dd-arrow { font-style: normal; font-size: 11px; color: #8a93a6; transition: transform .15s; } .pvp-dd.open .pvp-dd-arrow { transform: rotate(180deg); }
.pvp-dd-list { position: absolute; z-index: 30; top: calc(100% + 6px); left: 50%; transform: translateX(-50%); width: max-content; max-width: min(420px, 80vw); display: grid; grid-template-columns: repeat(4, auto); gap: 5px; padding: 8px; border-radius: 12px; background: #141a28; border: 1px solid #46557a; box-shadow: 0 12px 28px rgba(0,0,0,.55); }
.pvp-tipo { padding: 2px; border-radius: 7px; border: 2px solid transparent; background: transparent; cursor: pointer; opacity: .8; line-height: 0; }
.pvp-tipo:hover { opacity: 1; } .pvp-tipo.on { opacity: 1; border-color: #f2c14e; }
.pvp-go { align-self: stretch; font-size: 15px; padding: 11px 22px; border-radius: 12px; letter-spacing: .5px; }
.pvp-go:disabled { opacity: .55; cursor: not-allowed; }
@media (max-width: 560px) { .pvp-difs { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pvp-custom { grid-template-columns: 1fr; } .pvp-hero { flex-wrap: wrap; } .pvp-tab small { display: none; } }
/* treino > escolher time: slots do bot */
.pvp-team { gap: 8px; }
.pvp-team-btns { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.pvp-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 8px; }
.pvp-slot { position: relative; border-radius: 12px; border: 1px dashed #3a4462; background: rgba(255,255,255,.02); transition: border-color .15s, transform .1s; }
.pvp-slot:hover { border-color: #f2c14e; transform: translateY(-1px); }
.pvp-slot.full { border-style: solid; border-color: #2f3a56; background: linear-gradient(180deg, rgba(96,165,250,.1), rgba(255,255,255,.02)); }
.pvp-slot-main { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 6px 9px; border: 0; background: transparent; color: #cfd6e6; cursor: pointer; }
.pvp-slot-main b { font-size: 12.5px; color: #f3f6fb; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pvp-slot-main small { font-size: 10.5px; color: #8a93a6; }
.pvp-slot-plus { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; font-size: 22px; font-weight: 800; color: #f2c14e; background: rgba(242,193,78,.1); border: 1px solid rgba(242,193,78,.35); }
.pvp-slot-act { position: absolute; top: 4px; right: 4px; display: flex; gap: 3px; }
.pvp-slot-act button { width: 22px; height: 22px; padding: 0; border-radius: 6px; border: 1px solid #2c3550; background: rgba(10,14,22,.85); color: #cfd6e6; font-size: 11px; cursor: pointer; line-height: 1; }
.pvp-slot-act button:hover { border-color: #f2c14e; }
/* editor do slot */
.pvp-editor { display: flex; flex-direction: column; gap: 10px; }
.pvp-ed-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.pvp-ed-head b { font-size: 15px; color: #f3f6fb; }
.pvp-ed-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; padding: 4px; border-radius: 12px; background: rgba(0,0,0,.25); }
.pvp-ed-steps button { padding: 7px 4px; border-radius: 8px; border: 1px solid transparent; background: transparent; color: #aab3c7; font-weight: 700; font-size: 12px; cursor: pointer; white-space: nowrap; }
.pvp-ed-steps button.done { color: #7ff0a4; }
.pvp-ed-steps button.on { color: #1b1405; background: linear-gradient(180deg, #ffd56a, #f2b93a); }
.pvp-ed-steps button:disabled { opacity: .4; cursor: not-allowed; }
.pvp-ed-body { display: flex; flex-direction: column; gap: 10px; padding: 12px; border-radius: 14px; background: rgba(0,0,0,.25); border: 1px solid rgba(255,255,255,.06); }
.pvp-ed-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .pvp-ed-row .pvp-hint { flex: 1; min-width: 160px; }
.pvp-ed-search { flex: 1; min-width: 160px; padding: 7px 10px; border-radius: 9px; border: 1px solid #2c3550; background: rgba(255,255,255,.04); color: #e6eaf3; font: inherit; }
.pvp-ed-search:focus { outline: none; border-color: #f2c14e; }
.pvp-ed-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 5px; max-height: 300px; overflow-y: auto; padding: 2px; }
.pvp-ed-mon { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 5px 2px; border-radius: 9px; border: 1px solid transparent; background: rgba(255,255,255,.03); color: #cfd6e6; cursor: pointer; }
.pvp-ed-mon small { font-size: 10px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pvp-ed-mon:hover { border-color: #46557a; } .pvp-ed-mon.on { border-color: #f2c14e; background: rgba(242,193,78,.12); }
.pvp-ivs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; }
.pvp-iv { display: grid; grid-template-columns: 34px 1fr 26px; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; color: #cfd6e6; }
.pvp-iv input { width: 100%; accent-color: #f2c14e; } .pvp-iv b { font: 800 12px var(--mono); color: #f2c14e; text-align: right; }
.pvp-nats { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 5px; }
.pvp-nat { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 6px 4px; border-radius: 9px; border: 1px solid #2c3550; background: rgba(255,255,255,.03); color: #cfd6e6; cursor: pointer; }
.pvp-nat b { font-size: 12px; } .pvp-nat small { font-size: 10px; color: #8a93a6; }
.pvp-nat:hover { border-color: #46557a; } .pvp-nat.on { border-color: #f2c14e; background: rgba(242,193,78,.12); }
.pvp-moves { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; max-height: 300px; overflow-y: auto; padding: 2px; }
.pvp-move { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 8px; align-items: center; text-align: left; padding: 6px 8px; border-radius: 9px; border: 1px solid #2c3550; background: rgba(255,255,255,.03); color: #cfd6e6; cursor: pointer; }
.pvp-move > :first-child { grid-row: 1 / 3; } .pvp-move b { font-size: 12px; } .pvp-move small { font-size: 10px; color: #8a93a6; }
.pvp-move:hover { border-color: #46557a; } .pvp-move.on { border-color: #f2c14e; background: rgba(242,193,78,.12); }
.pvp-ed-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.pvp-ed-foot .btn-primary { margin-left: auto; }
@media (max-width: 560px) { .pvp-ivs, .pvp-moves { grid-template-columns: 1fr; } .pvp-ed-head { flex-wrap: wrap; } }
/* aba Casual (pvp.js) */
.pvp-hero.cas { background: radial-gradient(120% 140% at 0% 0%, rgba(74,222,128,.2), rgba(20,26,40,.95) 60%); border-color: rgba(74,222,128,.35); }
.pvp-hero.cas .pvp-hero-ic { background: rgba(74,222,128,.15); border-color: rgba(74,222,128,.45); }
.pvp-hero.cas .pvp-hero-lv { color: #86efac; }
.pvp-def { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; border-radius: 14px; background: rgba(0,0,0,.25); border: 1px solid rgba(255,255,255,.07); }
.pvp-def-row { display: flex; flex-wrap: wrap; gap: 6px; min-height: 52px; align-items: center; }
.pvp-def-mon { display: flex; flex-direction: column; align-items: center; padding: 4px 6px 3px; border-radius: 10px; background: rgba(255,255,255,.04); border: 1px solid #2c3550; }
.pvp-def-mon small { font: 800 10px var(--mono); color: #93c5fd; }
.pvp-def-grid .pvp-ed-mon { position: relative; }
.pvp-def-n { position: absolute; top: 3px; left: 4px; width: 17px; height: 17px; border-radius: 50%; display: grid; place-items: center; font: 800 10px var(--mono); font-style: normal; color: #1b1405; background: #f2c14e; }
.pvp-live-n { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; } .pvp-live-n .pvp-seg { flex: 1; min-width: 220px; }
.pvp-rivals { display: flex; flex-direction: column; gap: 6px; max-height: 340px; overflow-y: auto; padding-right: 2px; }
.pvp-rival { display: grid; grid-template-columns: minmax(110px, 1fr) auto auto; align-items: center; gap: 10px; padding: 7px 10px; border-radius: 12px; border: 1px solid #2a3248; background: rgba(255,255,255,.02); }
.pvp-rival.on { border-color: rgba(74,222,128,.35); background: linear-gradient(90deg, rgba(74,222,128,.08), rgba(255,255,255,.02) 60%); }
.pvp-rival-who { display: flex; align-items: center; gap: 7px; min-width: 0; } .pvp-rival-who b { font-size: 13px; color: #f3f6fb; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pvp-dot { width: 8px; height: 8px; border-radius: 50%; background: #5b6475; flex: 0 0 8px; } .pvp-rival.on .pvp-dot { background: #4ade80; box-shadow: 0 0 6px #4ade80; }
.pvp-rival-lv { font: 800 11px var(--mono); color: #93c5fd; white-space: nowrap; } .pvp-rival-lv.far { color: #fb923c; }
.pvp-rival-team { display: flex; gap: 1px; }
.pvp-rival-btns { display: flex; gap: 5px; }
@media (max-width: 560px) { .pvp-rival { grid-template-columns: 1fr; } .pvp-rival-btns { justify-content: flex-end; } }
/* menu dos Rare Candy (panels.js openCandyMenu): ao lado do botão "Doce" do card, por cima da tela */
.btn-candy-off { opacity: .6; }
.cpop { position: fixed; z-index: 9000; width: 300px; max-width: calc(100vw - 16px); display: flex; flex-direction: column; gap: 8px; padding: 10px; border-radius: 14px; background: #141a28; border: 1px solid #46557a; box-shadow: 0 14px 34px rgba(0,0,0,.6); color: #cfd6e6; }
.cpop-head { display: flex; align-items: center; gap: 8px; } .cpop-head b { font-size: 14px; color: #f3f6fb; }
.cpop-lv { font: 800 11px var(--mono); color: #c4b5fd; padding: 1px 7px; border-radius: 999px; background: rgba(167,139,250,.15); border: 1px solid rgba(167,139,250,.35); }
.cpop-x { margin-left: auto; width: 24px; height: 24px; border-radius: 7px; border: 1px solid #2c3550; background: transparent; color: #cfd6e6; cursor: pointer; }
.cpop-x:hover { border-color: #f2c14e; }
.cpop-q { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12px; font-weight: 700; }
.cpop-seg { display: flex; border: 1px solid #2c3550; border-radius: 8px; overflow: hidden; }
.cpop-seg button { padding: 4px 9px; border: 0; border-right: 1px solid #2c3550; background: transparent; color: #cfd6e6; font-weight: 700; font-size: 12px; cursor: pointer; }
.cpop-seg button:last-child { border-right: 0; } .cpop-seg button.on { background: rgba(167,139,250,.25); color: #ddd6fe; }
.cpop-list { display: flex; flex-direction: column; gap: 4px; max-height: 320px; overflow-y: auto; }
.cpop-row { display: grid; grid-template-columns: 28px 1fr auto auto; align-items: center; gap: 8px; padding: 5px 7px; border-radius: 10px; background: rgba(255,255,255,.03); border: 1px solid #2a3248; }
.cpop-row.off { opacity: .5; filter: grayscale(.6); }
.cpop-ic { width: 26px; height: 26px; image-rendering: pixelated; }
.cpop-txt { display: flex; flex-direction: column; min-width: 0; } .cpop-txt b { font-size: 12px; color: #f3f6fb; } .cpop-txt small { font-size: 10.5px; color: #8a93a6; line-height: 1.25; }
.cpop-have { font: 800 12px var(--mono); color: #f2c14e; }
.cpop-row .btn { min-width: 58px; }
.cpop-hint { font-size: 10.5px; color: #8a93a6; text-align: center; }
/* janelas de luta que dá para arrastar pela barra do título (ui.js draggable) */
.is-draggable > .sw-head { cursor: move; user-select: none; touch-action: none; }
.is-draggable.dragging { transition: none !important; opacity: .95; }
.gym-autoclose { font-size: 11px; color: #8a93a6; }
/* aviso "E Falar com..." do lado de um NPC (npcquests.js updateNpcPrompt): o mesmo do "E Cortar" */
.npc-prompt .cut-prompt-key { background: #7ff0a4; color: #0b2a17; }
.npc-prompt.fight .cut-prompt-key { background: #ff8a8a; color: #3a0d0d; }
body.mobile .npc-prompt .cut-prompt-key::before { content: "💬"; }
body.mobile .npc-prompt.fight .cut-prompt-key::before { content: "⚔"; }

/* ---- natureza + habilidade no card/tooltip do Pokémon (ui.js traitsBox) ---- */
.mc2-traits { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.mc2-trait { display: flex; flex-direction: column; gap: 1px; padding: 4px 7px; border-radius: 7px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.07); min-width: 0; }
.mc2-trait small { font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .4px; color: var(--muted, #6c7489); }
.mc2-trait b { font-size: 12px; color: #e8ebf3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc2-trait > span { font-size: 10px; color: var(--text-2, #a9b0c2); }
.mc2-trait i { font-style: normal; font-weight: 800; }
.mc2-tline { display: flex; align-items: baseline; gap: 5px; min-width: 0; }
.mc2-tline > span { font-size: 10px; white-space: nowrap; color: var(--text-2, #a9b0c2); }
.tr-up { color: #4cd07a; } .tr-down { color: #ff6b6b; } .tr-neu { color: var(--muted, #6c7489); }
.mc2-trait.hidden-ab { border-color: rgba(201,140,255,.45); background: rgba(160,90,230,.12); }
.abil-h { display: inline-block; margin-left: 4px; padding: 0 5px; border-radius: 6px; font-size: 9px !important; font-weight: 800; color: #e7c8ff !important; background: rgba(160,90,230,.35); vertical-align: middle; }
.mc2-trait .abil-h { margin: 1px 0 0; align-self: flex-start; }
.mc2-abdesc { grid-column: 1 / -1; font-size: 10.5px; line-height: 1.35; color: var(--text-2, #a9b0c2); padding: 0 2px; }
/* editor do slot (PvP Treino): escolher a habilidade */
.pvp-abils { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 6px; }
.pvp-abil { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; text-align: left; padding: 8px 10px; border-radius: 9px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); color: inherit; cursor: pointer; }
.pvp-abil:hover { background: rgba(255,255,255,.09); }
.pvp-abil.on { border-color: #ffcb3d; background: rgba(255,203,61,.12); }
.pvp-abil small { font-size: 11px; color: var(--text-2, #a9b0c2); line-height: 1.35; }
/* Pokédex: abas Pokémon / Habilidades / Naturezas (pokedex.js) */
.pdx-tabs { display: flex; gap: 6px; }
.pdx-tab { flex: 0 0 auto; padding: 6px 16px; border-radius: 8px; border: 1px solid rgba(255,255,255,.12); background: #0f1419; color: #cbd5e1; font: inherit; font-weight: 800; cursor: pointer; }
.pdx-tab:hover { background: #1b232b; }
.pdx-tab.on { background: linear-gradient(90deg, #7cc242, #4f9a2a); color: #10200a; border-color: #8fd14f; }
.pdx-hint { align-self: center; font-size: 12px; color: #9aa3b8; }
.pdx-habs { display: flex; flex-direction: column; gap: 4px; padding: 6px 9px; border-radius: 8px; background: rgba(15,20,25,.72); }
.pdx-habs .pdx-lbl { font-size: 10px; color: #9be7c9; text-transform: uppercase; letter-spacing: .3px; }
.pdx-hab { display: flex; flex-direction: column; gap: 1px; text-align: left; padding: 5px 8px; border-radius: 7px; border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.04); color: #fff; font: inherit; cursor: pointer; }
.pdx-hab:hover { background: rgba(255,255,255,.09); }
.pdx-hab b { font-size: 12px; } .pdx-hab > span { font-size: 11px; color: #cbd5e1; line-height: 1.35; }
.pdx-hab.oculta { border-color: rgba(201,140,255,.45); background: rgba(160,90,230,.14); }
.pdx-tabbody { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 8px; }
.pdx-habs-list, .pdx-nat-grid { position: relative; flex: 1; min-height: 0; overflow-y: auto; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); align-content: start; gap: 8px; padding: 8px; border-radius: 12px; background: #23292f; border: 2px solid #15181c; }
.pdx-habcard, .pdx-natcard { display: flex; flex-direction: column; gap: 5px; padding: 9px 11px; border-radius: 10px; background: linear-gradient(180deg, #313840, #2a3037); border: 1px solid rgba(255,255,255,.08); color: #f1f5f9; }
.pdx-habcard.on { border-color: #8fd14f; box-shadow: 0 0 0 2px rgba(143,209,79,.35); }
.pdx-habtop { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.pdx-habtop b { font-size: 14px; } .pdx-habtop small { font-size: 11px; color: #9aa3b8; }
.pdx-habdesc { font-size: 12px; line-height: 1.45; color: #cbd5e1; }
.pdx-rev { font-size: 10px; font-weight: 800; color: #ffcf70; padding: 1px 6px; border-radius: 6px; background: rgba(255,180,40,.14); white-space: nowrap; }
.pdx-habmons { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; }
.pdx-habmon { padding: 0; border: 1px solid transparent; border-radius: 6px; background: rgba(0,0,0,.2); cursor: pointer; line-height: 0; }
.pdx-habmon:hover { border-color: #8fd14f; } .pdx-habmon.oculta { border-color: rgba(201,140,255,.55); }
.pdx-habmore { font-size: 11px; color: #7b8794; margin-left: 4px; }
.pdx-natcard.neutra { opacity: .85; }
.pdx-natfx { display: flex; gap: 10px; font-size: 12px; } .pdx-natfx i { font-style: normal; font-weight: 800; }
body.mobile .pdx-habs-list, body.mobile .pdx-nat-grid { grid-template-columns: 1fr; }
/* atalho do botão da batalha (Opções > Atalhos) */
.bt-kbd { margin-left: auto; min-width: 20px; padding: 1px 5px; border-radius: 4px; border: 1px solid #ffffff40; background: #00000040; color: #ffffffb0; font: 700 10px/1.4 monospace; text-align: center; }
body.mobile .bt-kbd { display: none; }
.opt-key { min-width: 92px; font-family: monospace; font-weight: 700; }
.opt-key.waiting { border-color: #ffd34d; color: #ffd34d; animation: optKeyBlink 1s steps(2) infinite; }
@keyframes optKeyBlink { 50% { opacity: .55; } }
#opt-keys { display: flex; flex-direction: column; gap: 6px; margin-top: 6px; }
/* olho da battle scene nas janelas de luta contra treinadores (ui.js sceneEye) */
.sw-head .pv-eye { height: 28px; width: 30px; margin: 0 8px 0 auto; }
.sw-head .pv-eye.off { background: #c9ced6; opacity: .75; }
body.pv-noscene .pvp-ov .pv-field { display: none; }
/* battle scene escondida (olho) no computador: a janela da luta vira uma barra de ações logo acima da faixa de status (#gb-hud), as duas
   um pouco para a esquerda; o histórico fica à direita delas (da altura da barra + faixa). Sem a barra de título: o olho fica no canto da barra
   e a câmera sobe a luta para o espaço livre acima (gym.js frame). A faixa da própria janela some (a de baixo já mostra). */
body.pv-noscene:not(.mobile) { --dock-w: min(760px, calc(100vw - 420px)); --dock-log: 330px; --dock-gap: 12px; --dock-hud: 62px; }
body.pv-noscene:not(.mobile) #gb-hud { width: var(--dock-w); margin-right: calc(var(--dock-log) + var(--dock-gap)); }
body.pv-noscene:not(.mobile) .gb-ov { place-items: end center; }
body.pv-noscene:not(.mobile) .gb-ov .gb-box { position: relative; overflow: visible; width: var(--dock-w); max-height: 46%; margin: 0 calc(var(--dock-log) + var(--dock-gap)) 6px 0;
  align-self: end; translate: none !important; display: flex; flex-direction: column; }
body.pv-noscene:not(.mobile) .gb-ov .gb-box > .gb-strip { display: none; }
body.pv-noscene:not(.mobile) .gb-ov .gb-box > .sw-head { position: absolute; top: -15px; right: 10px; z-index: 2; padding: 0; gap: 6px; background: none; border: 0; }
body.pv-noscene:not(.mobile) .gb-ov .gb-box > .sw-head > span:first-child { display: none; }
body.pv-noscene:not(.mobile) .gym-ov .gb-box > .sw-head .gb-clock { display: none; }   /* itens: a faixa de baixo já mostra (na arena da guilda o relógio fica) */
body.pv-noscene:not(.mobile) .gb-ov .gb-box > .sw-head .gb-clock { background: #1c2029; border: 1px solid var(--hud-line); border-radius: 6px; padding: 1px 8px; font-size: 12px; }
body.pv-noscene:not(.mobile) .gb-ov .gb-box > .sw-head .pv-eye { height: 26px; width: 28px; margin: 0; border-radius: 50%; box-shadow: 0 2px 6px #0008; }
body.pv-noscene:not(.mobile) .gb-ov .gb-box > .pv-log { position: absolute; left: calc(100% + var(--dock-gap)); top: 0; bottom: calc(-1 * var(--dock-hud) - 6px); width: var(--dock-log);
  max-height: none; height: auto; min-height: 0; border: 1px solid var(--hud-line); border-radius: 10px; font-size: 11.5px; padding: 6px 10px; box-shadow: 0 6px 18px #0007; }
body.pv-noscene:not(.mobile) .gb-ov .gb-box > .sw-foot { padding: 8px 10px; gap: 6px; border-top: 0; }
body.pv-noscene:not(.mobile) .gb-ov .gb-box .gb-moves { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.pv-noscene:not(.mobile) .gb-ov .gb-box .gb-moves .bt-btn { height: 40px; }
body.pv-noscene:not(.mobile) .gb-ov .gb-box .gb-modebar .bt-btn { height: 32px; }
body.pv-noscene:not(.mobile) .gb-ov .gb-box .pv-turn-banner { padding: 2px 8px; font-size: 12px; margin-right: 70px; }
/* abas das Opções (main.js setupOptTabs) */
.opt-tabs { margin: 0 0 12px; flex-wrap: wrap; }
.opt-pane > .opt-group:first-child h3 { margin-top: 0; }
/* busca do mapa (panels.js MapPanel.search): canto de cima à esquerda */
.mp-search { position: absolute; top: 8px; left: 8px; z-index: 3; width: min(300px, calc(100% - 16px)); display: flex; flex-direction: column; gap: 5px; }
.mp-search-in { width: 100%; box-sizing: border-box; background: rgba(10,14,24,.92); color: #fff; border: 1px solid #3a4560; border-radius: 8px; padding: 7px 10px; font: 600 13px var(--font, Inter); outline: none; }
.mp-search-in:focus { border-color: var(--accent, #f5c518); }
.mp-search-kinds { display: flex; gap: 4px; flex-wrap: wrap; }
.mp-kind { background: rgba(10,14,24,.85); color: #8a93a8; border: 1px solid #3a4560; border-radius: 7px; padding: 3px 8px; font: 700 11px var(--font, Inter); cursor: pointer; }
.mp-kind.on { color: #fff; border-color: var(--accent, #f5c518); }
.mp-search-res { background: rgba(10,14,24,.96); border: 1px solid #3a4560; border-radius: 8px; max-height: 260px; overflow-y: auto; padding: 3px; }
.mp-res { display: flex; align-items: center; gap: 7px; width: 100%; text-align: left; background: none; border: 0; border-radius: 6px; color: #fff; padding: 5px 7px; font: 600 12px var(--font, Inter); cursor: pointer; }
.mp-res b { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mp-res small { color: #8a93a8; font-weight: 700; white-space: nowrap; }
.mp-res:hover, .mp-res.sel { background: rgba(245,197,24,.16); }
.mp-res.off { opacity: .45; cursor: default; }
.mp-res-where { font-style: italic; }
.mp-res-none { color: #8a93a8; font: 600 12px var(--font, Inter); padding: 6px 8px; }
@media (max-width: 640px) { .mp-tools { top: auto; bottom: 8px; } }
/* Loja de Diamantes em abas (panels.js renderDShop, data/loja_diamantes.json) */
.ds-tabs { margin-top: 6px; }
.ds-tab-ic { font-size: 17px; line-height: 1; width: 24px; text-align: center; }
.ds-get { margin-left: 8px; padding: 2px 10px; }
.ds-emote { display: block; width: 32px; height: 32px; background-size: 64px 32px; background-repeat: no-repeat; image-rendering: pixelated; animation: ds-emote .6s steps(2) infinite; }
@keyframes ds-emote { from { background-position: 0 0; } to { background-position: -64px 0; } }
.fm-btn.fm-bike.on { border-color: var(--accent, #f5c518); box-shadow: 0 0 0 1px var(--accent, #f5c518) inset; }
.fm-btn.fm-bike:not(.on) { opacity: .7; }
/* Loja de Diamantes: subabas e cards em coluna (ícone + nome, texto, botões embaixo) */
.ds-subtabs { display: flex; gap: 4px; flex-wrap: wrap; margin: 2px 0 10px; padding: 4px; background: #121726; border: 1px solid #263049; border-radius: 10px; width: fit-content; max-width: 100%; }
.ds-subtab { background: none; border: 0; color: #9aa3b8; font: 700 12.5px var(--font, Inter); padding: 6px 12px; border-radius: 7px; cursor: pointer; }
.ds-subtab:hover { color: #fff; }
.ds-subtab.active { background: rgba(245,197,24,.16); color: var(--accent, #f5c518); }
.ds-sub { margin: 0 0 10px; color: #9aa3b8; font-size: 12.5px; }
#panel-dshop .ds-body .shop-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
#panel-dshop .ds-body .ds-grid-wide { grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); }
.ds-card { display: flex; flex-direction: column; gap: 8px; padding: 12px; border-radius: 12px; background: linear-gradient(180deg, #1b2234, #151a28); border: 1px solid #2c3550; min-width: 0; }
.ds-card:hover { border-color: #3d4a6e; }
.ds-head { display: flex; align-items: center; gap: 10px; min-width: 0; }
.ds-ic { width: 44px; height: 44px; flex: none; display: grid; place-items: center; border-radius: 10px; background: #0f1320; border: 1px solid #2c3550; overflow: hidden; }
.ds-ic img { width: 32px; height: 32px; image-rendering: pixelated; }
.ds-skin .ds-ic { width: 60px; height: 60px; }
.ds-skin .ds-ic img, .ds-skin .ds-ic > * { max-width: 56px; max-height: 56px; }
.ds-title { display: flex; flex-direction: column; min-width: 0; }
.ds-title b { font-size: 14px; line-height: 1.25; color: #fff; }
.ds-have { color: #9fd0ff; font: 700 11px var(--mono, monospace); margin-top: 2px; }
.ds-desc { font-size: 12px; color: #9aa3b8; line-height: 1.4; flex: 1; }
.ds-foot { display: flex; gap: 6px; margin-top: auto; align-items: center; }
.ds-buy { flex: 1; display: inline-flex !important; justify-content: space-between; align-items: center; gap: 6px; min-width: 0; }
.ds-qty { font-weight: 800; }
.ds-cost { display: inline-flex; align-items: center; gap: 3px; font-weight: 800; margin-left: auto; }
.ds-cost .cur-ic { width: 14px; height: 14px; }
.ds-foot .chip { margin-left: auto; }
.ds-pack-list { display: grid; grid-template-columns: 1fr 1fr; gap: 5px 10px; padding: 8px; background: #10141f; border-radius: 8px; }
.ds-pack-it { display: flex; align-items: center; gap: 5px; font-size: 12px; color: #cfd6e6; min-width: 0; }
.ds-pack-it b { color: #fff; flex: none; }
.ds-pack-it span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ds-pack-it img { width: 22px; height: 22px; flex: none; }
.ds-pack .ds-foot .ds-buy { flex: 0 1 220px; margin-left: auto; }
/* aba Premium: card grande à esquerda, Apoie o jogo e Armazenamento à direita (loja_diamantes.json "lado") */
.ds-split { display: grid; grid-template-columns: minmax(0, 430px) minmax(0, 1fr); gap: 16px; align-items: start; }
.ds-split .ds-main .shop-grid, .ds-split .ds-side .shop-grid { grid-template-columns: 1fr !important; }
.ds-split .ds-side .shop-grid { max-width: 420px; }
.ds-split .ds-main > .dshop-sec:first-child, .ds-split .ds-side > .dshop-sec:first-child { margin-top: 0; }
@media (max-width: 760px) { .ds-split { grid-template-columns: 1fr; } }
/* raridade: sempre numa linha própria abaixo dos tipos (card do Pokémon e Pokédex) */
.mc2-rar { display: flex; margin-top: 3px; }
.mc2-rar .rar-chip { font-size: 10px; padding: 0 7px; }
.pdx-rar .rar-chip { font-size: 11px; color: var(--rc); font-weight: 800; }   /* o .pdx-hw span (rótulo) não pinta o selo */
/* Entrar com o Google (google.js): divisor "ou" e o botão oficial centralizado */
.login-google { margin-top: 12px; }
.login-or { display: flex; align-items: center; gap: 10px; color: #8a93a8; font-size: 12px; margin-bottom: 10px; }
.login-or::before, .login-or::after { content: ""; flex: 1; height: 1px; background: rgba(255,255,255,.14); }
.google-btn { display: flex; justify-content: center; min-height: 44px; }
.opt-google-act { display: flex; align-items: center; justify-content: flex-end; min-width: 200px; }
/* painel do GM: aba Doações (gm.js doacoesView) */
.gm-doa-tot { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; margin: 6px 0 10px; }
.gm-doa-tot > div { display: flex; flex-direction: column; padding: 8px 10px; border-radius: 8px; background: #121726; border: 1px solid #263049; }
.gm-doa-tot small { color: #8a93a8; font-size: 11px; } .gm-doa-tot b { font-size: 16px; color: #fff; } .gm-doa-tot b.ok { color: #4ade80; } .gm-doa-tot b.off { color: #f87171; }
.gm-doa-filtros { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 8px; }
.gm-doa-wrap { max-height: 360px; overflow: auto; border: 1px solid #263049; border-radius: 8px; }
.gm-doa-tab { width: 100%; border-collapse: collapse; font-size: 12px; }
.gm-doa-tab th { position: sticky; top: 0; background: #151a28; color: #8a93a8; text-align: left; padding: 6px 8px; font-weight: 700; }
.gm-doa-tab td { padding: 5px 6px; border-top: 1px solid #1f2638; white-space: nowrap; }
.gm-doa-tab td:nth-child(3) { white-space: normal; min-width: 90px; }   /* personagem (conta): quebra a linha em vez de empurrar os botões */
.gm-doa-tab td:nth-child(3) small { display: block; }
.gm-doa-act .btn { padding: 2px 8px; font-size: 11px; }
.gm-doa-act { display: flex; gap: 4px; justify-content: flex-end; }
.gm-doa-st { padding: 1px 8px; border-radius: 999px; font-weight: 700; font-size: 11px; background: #263049; color: #cfd6e6; }
.gm-doa-st.aprovado { background: rgba(74,222,128,.15); color: #4ade80; } .gm-doa-st.pendente { background: rgba(250,204,21,.15); color: #facc15; }
.gm-doa-st.divergente, .gm-doa-st.erro { background: rgba(248,113,113,.15); color: #f87171; } .gm-doa-st.estornado { background: rgba(192,123,255,.15); color: #c07bff; }
.login-legal { margin-top: 8px; text-align: center; line-height: 1.4; }
.login-legal a { color: var(--accent, #f5c518); }
/* primeira visita: escolher o idioma antes do login (main.js firstLang) */
.lang-first { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 16px;
  background: radial-gradient(ellipse at center, rgba(20,28,48,.92), rgba(6,8,14,.97)); backdrop-filter: blur(3px); }
.lang-first-box { width: min(420px, 100%); text-align: center; padding: 26px 22px 20px; border-radius: 18px; background: #151a28; border: 1px solid #2c3550; box-shadow: 0 20px 60px rgba(0,0,0,.6); }
.lang-first-logo { width: min(240px, 70%); height: auto; margin: 0 auto 10px; display: block; }
.lang-first-box h2 { margin: 6px 0 16px; font-size: 20px; color: #fff; display: flex; flex-direction: column; gap: 2px; }
.lang-first-box h2 small { font-size: 13px; color: #8a93a8; font-weight: 600; }
.lang-first-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.lang-first-opt { display: flex; flex-direction: column; gap: 2px; padding: 16px 10px; border-radius: 12px; cursor: pointer; background: #1b2234; border: 2px solid #2c3550; color: #fff; font: inherit; }
.lang-first-opt b { font-size: 17px; } .lang-first-opt small { color: #8a93a8; font-size: 12px; }
.lang-first-opt:hover { border-color: #56627a; transform: translateY(-1px); }
.lang-first-opt.sug { border-color: var(--accent, #f5c518); background: rgba(245,197,24,.10); }
.lang-first-hint { margin: 14px 0 0; font-size: 12px; color: #8a93a8; }
.doa-pac:disabled { opacity: .55; cursor: wait; } .doa-pac.busy { opacity: 1; outline: 2px solid var(--accent, #f5c518); }   /* gerando o Pix (doacoes.js criar) */
/* Entrar com o Discord (main.js): botão na cor da marca, logo abaixo do botão do Google */
.discord-btn { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; max-width: 360px; margin: 8px auto 0; height: 40px; padding: 0 16px;
  border: 0; border-radius: 999px; background: #5865F2; color: #fff; font: 600 14px var(--font, Inter), sans-serif; cursor: pointer; }
.discord-btn:hover { background: #4752c4; }
.discord-btn svg { width: 22px; height: 22px; flex: none; }
.discord-btn.discord-sm { width: auto; height: 32px; margin: 0; font-size: 13px; }
