@import url("https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600;700;800;900&display=swap");

:root {
  font-family:"Barlow",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#eef4ff;
  background:#070a0f;
  font-synthesis:none;
  --ui-blue-950:#07101e;
  --ui-blue-900:#0a1628;
  --ui-blue-850:#0d1b30;
  --ui-blue-800:#11233d;
  --ui-blue-700:#18365a;
  --ui-blue-500:#3384d7;
  --ui-blue-300:#79baff;
  --ui-red-500:#ec3f62;
  --ui-red-600:#c7284a;
  --ui-white:#f5f8ff;
  --ui-muted:#8294af;
  --ui-line:#28405f;
}

/* Held Items V1 */
.pokemon-addon-window.held-window{width:min(640px,calc(100vw - 28px));grid-template-rows:auto auto auto auto auto auto;overflow:hidden}
.held-pre-spin{display:grid;grid-template-columns:74px minmax(0,1fr);align-items:center;gap:14px;margin:16px 20px 4px;padding:15px 17px;border:1px solid #315c77;border-radius:10px;background:linear-gradient(145deg,#102c40,#091b29);box-shadow:0 8px 22px #0004,inset 0 1px #ffffff0c}.held-pre-spin>.held-spin-preview-visual{display:block;width:66px;height:66px}.held-spin-preview-visual>img,.held-spin-preview-visual>.animated-item-visual,.held-spin-preview-visual>.animated-item-visual .animated-item-fallback,.held-spin-preview-visual>.animated-item-visual .animated-item-viewport{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.held-pre-spin>span:not(.held-spin-preview-visual){display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:3px}.held-pre-spin small{color:#75b7d5;font-size:8px;font-weight:900;letter-spacing:.13em}.held-pre-spin strong{color:#eef9ff;font-size:16px}.held-pre-spin em{color:#8fb5c8;font-size:10px;font-style:normal}.held-pre-spin b{color:#dff7ff}
.held-spin-stage{position:relative;height:126px;margin:16px 20px 4px;overflow:hidden;border:1px solid #315c77;border-radius:10px;background:linear-gradient(180deg,#0c2233,#071723);box-shadow:inset 0 1px #ffffff0b,inset 0 -18px 32px #020b12a6;opacity:1;transform:translateY(0);transition:opacity .18s ease,transform .18s ease}.held-spin-stage.is-leaving{opacity:0;transform:translateY(-6px);pointer-events:none}
.held-spin-stage::before,.held-spin-stage::after{content:"";position:absolute;z-index:3;top:0;bottom:0;width:72px;pointer-events:none}
.held-spin-stage::before{left:0;background:linear-gradient(90deg,#071723 12%,transparent)}
.held-spin-stage::after{right:0;background:linear-gradient(270deg,#071723 12%,transparent)}
.held-marker{position:absolute;z-index:5;top:4px;left:50%;translate:-50% 0;color:#68d5f5;font-size:17px;line-height:1;filter:drop-shadow(0 0 5px #49bfe5)}
.held-marker::after{content:"";position:absolute;top:14px;left:50%;width:1px;height:96px;background:linear-gradient(#63d2f399,transparent);translate:-50% 0}
.held-reel{position:absolute;top:24px;left:0;display:flex;align-items:center;column-gap:8px;width:max-content;will-change:transform;transform:translate3d(var(--held-reel-start,0),0,0)}
.held-reel.is-awaiting{left:50%;transform:translate3d(-50%,0,0)}
.held-reel.is-resolving{animation:held-reel-resolve 3.5s cubic-bezier(.08,.72,.1,1) both}
.held-reel-card{display:grid;place-items:center;grid-template-rows:52px 18px;gap:4px;width:92px;height:88px;padding:7px 5px;border:1px solid #294b61;border-radius:8px;background:linear-gradient(180deg,#123149,#0b2233);box-shadow:inset 0 1px #ffffff0a;color:#bed2de;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.held-reel-card>img,.held-reel-card>.animated-item-visual{width:48px;height:48px;object-fit:contain;image-rendering:pixelated}.held-reel-card>.animated-item-visual .animated-item-fallback,.held-reel-card>.animated-item-visual .animated-item-viewport{width:48px;height:48px}
.held-reel-card small{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:9px;font-weight:700;line-height:18px}
.held-reel-card.is-winner{border-color:#66ccea;box-shadow:0 0 0 1px #66ccea55,0 0 16px #3fbfe94d,inset 0 1px #ffffff18;transform:scale(1.03)}
.held-reel-loading{display:flex;align-items:center;justify-content:center;width:168px;height:88px;border:1px solid #294b61;border-radius:8px;background:#0c2537;color:#78b7d1}.held-reel-loading small{font-size:9px;font-weight:900;letter-spacing:.12em}
@keyframes held-reel-resolve{from{transform:translate3d(var(--held-reel-start,0),0,0)}to{transform:translate3d(var(--held-reel-end,-4500px),0,0)}}
.held-result{margin:10px 20px 2px;display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--held-accent,#397898);border-radius:10px;background:linear-gradient(145deg,#102c40,#091b29);box-shadow:0 8px 22px #0004,inset 0 1px #ffffff0c}
.held-result>img,.held-result>.animated-item-visual{width:70px;height:70px;object-fit:contain;image-rendering:pixelated}.held-result>.animated-item-visual .animated-item-fallback,.held-result>.animated-item-visual .animated-item-viewport{width:70px;height:70px}.held-result-copy{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:2px}.held-result-copy small{color:#75b7d5;font-size:8px;font-weight:900;letter-spacing:.13em}.held-result-copy strong{color:#eef9ff;font-size:19px;line-height:1.1}.held-result-copy em{margin-top:3px;color:#9fc2d3;font-size:10px;font-style:normal;line-height:1.35}
.held-tier-badge{position:absolute!important;left:4px!important;top:4px!important;display:inline-flex;align-items:center;justify-content:center;min-width:22px;min-height:16px;padding:2px 5px;border:1px solid var(--held-accent,#4c87a5);border-radius:5px;background:#0b2535;color:#d9f5ff;font:800 9px/1 sans-serif;text-align:center}
.held-tier-badge-inline{position:static!important;display:inline-flex;align-items:center;justify-content:center;width:max-content;margin-top:3px}
.held-result-tier{min-width:62px;min-height:26px;margin:0;padding:0 9px;border-radius:6px;background:color-mix(in srgb,var(--held-accent) 14%,#0b2535);color:#e9f8ff;letter-spacing:.04em}
.held-tier-1{--held-accent:#66859a}.held-tier-2{--held-accent:#4d9f83}.held-tier-3{--held-accent:#438ebc}.held-tier-4{--held-accent:#7178c6}.held-tier-5{--held-accent:#9675d8}.held-tier-6{--held-accent:#d66ea9}.held-tier-7{--held-accent:#d9b94f}
.held-result.held-tier-5,.held-result.held-tier-6,.held-result.held-tier-7{box-shadow:0 8px 24px #0005,0 0 16px color-mix(in srgb,var(--held-accent) 18%,transparent),inset 0 1px #ffffff10}
.held-result.held-tier-7>img,.held-result.held-tier-7>.animated-item-visual{animation:held-tier-seven 1.1s ease-in-out 2}
@keyframes held-tier-seven{50%{filter:drop-shadow(0 0 8px #e8d36b);transform:scale(1.045)}}
.held-chances{margin:10px 20px 4px;padding:0;border:0;color:#9fc2d5;font-size:10px}.held-chances-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:30px;margin:0;padding:0 11px;list-style:none;cursor:pointer}.held-chances-toggle::-webkit-details-marker{display:none}.held-chances[open] .held-chances-toggle{border-color:#5592b2;color:#e3f5fd}.held-chance-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:8px 0 6px}.held-chance-grid span{min-height:34px;display:flex;align-items:center;justify-content:center;gap:4px;border:1px solid #29495d;border-radius:6px;background:#0a1e2d}.held-chance-grid b{color:#d9eff9;font-size:9px}.held-chance-grid em{color:#7fa9bd;font-size:9px;font-style:normal}.held-chances>small{display:block;color:#7899aa}
.held-window>.pokemon-addon-status{min-height:18px;margin:6px 20px 8px;text-align:left}.held-window>footer .held-button{min-width:108px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;margin:0;padding:0 16px;border-radius:7px;font-size:9px;line-height:1;text-align:center}.held-window>footer .held-button:disabled,.held-window>header button:disabled{opacity:.42;cursor:not-allowed}
.held-equip-window{grid-template-rows:auto auto auto auto auto}.held-selected{margin-bottom:2px}.held-candidates-title{display:block;margin:8px 20px 0;color:#75b7d5;font-size:8px;font-weight:900;letter-spacing:.13em}.held-equip-window>.pokemon-addon-candidates{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;margin-top:0;padding:9px 20px 10px;overflow:visible}.held-equip-window>.pokemon-addon-candidates button{min-width:0}.held-equip-window>.pokemon-addon-candidates button:disabled{cursor:not-allowed;opacity:.54}.held-candidate-status{display:block;margin-top:3px;color:#6fa4bd;font-size:8px;font-style:normal;font-weight:800;letter-spacing:.04em}.held-candidate-status.is-equipped{color:#d2a95c}.held-candidate-status.is-incompatible{color:#c88b8b}
@media(prefers-reduced-motion:reduce){.held-reel.is-resolving{animation-duration:.18s}.held-reel-card,.held-result.held-tier-7>img,.held-result.held-tier-7>.animated-item-visual{animation-duration:.15s;animation-iteration-count:1;transition:none}.held-spin-stage{transition-duration:.01ms}}
@media(max-width:560px){.pokemon-addon-window.held-window{width:100%}.held-pre-spin{grid-template-columns:56px minmax(0,1fr);margin:12px 12px 2px;padding:12px}.held-pre-spin>.held-spin-preview-visual{width:52px;height:52px}.held-spin-stage{height:116px;margin:12px 12px 2px}.held-reel{top:19px}.held-result{grid-template-columns:58px minmax(0,1fr);margin-inline:12px;padding:12px}.held-result>img,.held-result>.animated-item-visual{width:54px;height:54px}.held-result-tier{grid-column:2;margin-top:5px}.held-equip-window>.pokemon-addon-candidates{grid-template-columns:1fr;max-height:min(48vh,420px);padding-inline:12px;overflow-y:auto}.held-candidates-title{margin-inline:12px}.held-chances{margin-inline:12px}.held-chance-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.held-window>footer .held-button{flex:1;min-width:0}}
* { box-sizing:border-box; }
body { margin:0; min-width:320px; min-height:100vh; overflow:hidden; background:radial-gradient(circle at 20% 20%, #18243a 0, transparent 32%), linear-gradient(135deg,#05070b,#0b1019 55%,#07090e); }
button,input { font:inherit; }
button { cursor:pointer; }
#app { min-height:100vh; }
.eyebrow { margin:0 0 8px; color:#7f91ad; font-size:11px; font-weight:800; letter-spacing:.18em; }
.auth-shell { position:relative; isolation:isolate; min-height:100vh; min-height:100dvh; display:grid; place-items:center; overflow:auto; padding:20px; background:#071326 url('/assets/auth/pokeorigins-login-background.png') center center / 100% 100% no-repeat; }
.auth-shell:before { content:""; position:fixed; z-index:0; inset:0; pointer-events:none; }
.auth-card { position:relative; z-index:1; width:min(410px,calc(100vw - 32px)); margin:auto; padding:22px 28px 18px; border:1px solid rgba(147,205,241,.46); border-radius:14px; background:linear-gradient(155deg,rgba(8,31,55,.92),rgba(4,18,35,.95)); box-shadow:0 22px 56px rgba(0,10,27,.52),inset 0 1px 0 rgba(255,255,255,.13); -webkit-backdrop-filter:blur(9px); backdrop-filter:blur(9px); transform:translateY(clamp(70px,10vh,110px)); }
.auth-card-header { margin-bottom:16px; text-align:center; }
.auth-card-header .auth-kicker { margin:0 0 7px; color:#83d7ff; font-size:9px; font-weight:900; letter-spacing:.22em; }
.auth-card-header h1 { margin:0; color:#f7fbff; font-size:28px; font-weight:900; line-height:1; letter-spacing:.035em; text-shadow:0 2px 14px #0008; }
.auth-card-header > p:last-child { margin:9px 0 0; color:#a8bbd0; font-size:12px; line-height:1.4; }
.tabs { display:grid; grid-template-columns:1fr 1fr; gap:5px; margin-bottom:14px; padding:4px; border:1px solid rgba(84,136,177,.45); border-radius:8px; background:rgba(2,14,29,.5); }
.tab { min-height:37px; padding:9px 12px; border:1px solid transparent; border-radius:5px; color:#7891aa; background:transparent; font-weight:900; font-size:11px; letter-spacing:.11em; transition:color .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease; }
.tab:hover { color:#dceeff; background:rgba(45,119,170,.13); }
.tab.active { color:#fff; border-color:#3fa6dc; background:linear-gradient(180deg,#2586bd,#15638f); box-shadow:inset 0 1px 0 #ffffff30,0 5px 14px #00172b66; }
label { display:grid; gap:8px; margin:18px 0; color:#8391a7; font-size:11px; font-weight:800; letter-spacing:.11em; }
input { width:100%; border:1px solid #2d3a50; background:#080d15; color:#fff; border-radius:9px; padding:14px 15px; outline:none; }
.auth-card label { margin:12px 0; color:#9db1c7; }
.auth-card input { min-height:44px; border-color:#315575; background:rgba(2,13,27,.82); }
.auth-card input::placeholder { color:#526a82; }
.auth-card input:focus { border-color:#51bce9; box-shadow:0 0 0 3px #35a9df25; }
.primary,.travel-button { border:0; border-radius:9px; padding:14px 18px; color:#fff; background:linear-gradient(180deg,#ed4669,#bd2244); font-weight:900; letter-spacing:.08em; box-shadow:0 8px 24px #d6285044; }
.auth-card .primary { width:100%; min-height:45px; margin-top:8px; border:1px solid #80d9f2; background:linear-gradient(180deg,#2da7d9,#1677aa); box-shadow:0 9px 24px #003d6270,inset 0 1px 0 #ffffff4a; transition:filter .16s ease,transform .16s ease,box-shadow .16s ease; }
.auth-card .primary:hover:not(:disabled) { filter:brightness(1.08); transform:translateY(-1px); box-shadow:0 11px 28px #003d6285,inset 0 1px 0 #ffffff57; }
.auth-card .primary:disabled { cursor:wait; opacity:.68; }
.auth-card .tab:focus-visible,.auth-card input:focus-visible,.auth-card .primary:focus-visible { outline:2px solid #b8ecff; outline-offset:2px; }
.form-message { min-height:20px; font-size:12px; text-align:center; }
.form-message.error { color:#fda4af; }.form-message.success { color:#86efac; }
.character-shell { min-height:100vh; padding:clamp(30px,5vw,70px); overflow:auto; }
.character-shell header { max-width:1100px; margin:0 auto 32px; display:flex; align-items:center; justify-content:space-between; }
.character-shell h2 { margin:0; font-size:36px; }
.ghost { border:1px solid #344158; color:#aebbd0; background:#101722; border-radius:8px; padding:11px 16px; font-weight:800; }
.character-grid { max-width:1100px; margin:auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:18px; }
.character-card { min-height:260px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; color:#eef4ff; border:1px solid #2a374c; border-radius:15px; background:linear-gradient(160deg,#151e2c,#0b111a); transition:.2s; }
.character-card:hover { transform:translateY(-4px); border-color:#dd3a5d; box-shadow:0 18px 50px #0008,0 0 0 1px #dd3a5d44 inset; }
.avatar-ring { width:86px; height:86px; display:grid; place-items:center; border-radius:50%; border:2px solid #44516a; background:radial-gradient(circle,#25324a,#0b1119); color:#ed4568; font-size:34px; }
.character-card strong { font-size:20px; }.character-card small { color:#7f8ea4; }.character-card em { margin-top:16px; color:#f05a78; font-size:11px; font-style:normal; font-weight:900; letter-spacing:.15em; }
.character-card.create { border-style:dashed; color:#8b99ad; }.plus { font-size:52px; font-weight:200; color:#df3c5f; }
.modal { position:fixed; inset:0; display:grid; place-items:center; background:#020409cc; z-index:20; }
.modal.hidden { display:none; }.modal form { width:min(420px,calc(100% - 32px)); padding:28px; border:1px solid #34425a; border-radius:15px; background:#101722; }.modal form div { display:flex; justify-content:flex-end; gap:10px; }

/* HUD DO JOGO — UI v0.4 */
.game-shell { min-height:100vh; height:100vh; display:grid; grid-template-rows:76px minmax(0,1fr); background:#05080d; }
.game-shell input:focus { border-color:#5687ac; box-shadow:0 0 0 2px #5687ac26; }
.game-topbar { position:relative; z-index:20; min-width:0; display:grid; grid-template-columns:225px minmax(390px,1fr) auto; align-items:center; padding:0 14px 0 0; border-bottom:1px solid #294362; background:linear-gradient(180deg,#122640 0%,#0a182b 100%); box-shadow:0 10px 32px #000b, inset 0 1px 0 #ffffff13; }
.game-topbar:after { content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:linear-gradient(90deg,transparent 4%,#2e83d0 35%,#ec3f62 50%,#2e83d0 65%,transparent 96%); opacity:.6; }
.game-brand { height:100%; display:flex; align-items:center; gap:12px; padding:0 18px; border-right:1px solid #29415f; background:linear-gradient(90deg,#091728cc,transparent); }
.game-brand strong { display:block; font-size:17px; line-height:1; letter-spacing:.075em; }
.game-brand strong span { color:var(--ui-red-500); }
.game-brand small,.location small,.connection small { display:block; margin-top:5px; color:#7390b3; font-size:8px; font-weight:900; letter-spacing:.15em; }
.mini-mark { width:36px; height:36px; flex:0 0 auto; border:3px solid #eef5ff; border-radius:50%; position:relative; overflow:hidden; box-shadow:0 0 20px #ec3f6244; }
.mini-mark:before { content:""; position:absolute; left:-3px; right:-3px; top:14px; height:3px; background:#eef5ff; z-index:2; }
.mini-mark:after { content:""; position:absolute; inset:0 0 50%; background:#d72f52; }
.mini-mark span { position:absolute; z-index:3; left:9px; top:9px; width:12px; height:12px; border:3px solid #eef5ff; border-radius:50%; background:#10223a; }

.top-menu { min-width:0; height:100%; display:flex; align-items:center; justify-content:center; gap:8px; padding:0 16px; }
.menu-button { position:relative; height:58px; min-width:112px; display:flex; align-items:center; gap:9px; padding:7px 12px 7px 9px; color:#dbe8f8; border:1px solid #315173; border-radius:9px; background:linear-gradient(180deg,#173453,#0d223a); box-shadow:inset 0 1px 0 #ffffff13,0 5px 14px #0005; transition:border-color .16s,background .16s,transform .16s,box-shadow .16s; }
.menu-button:hover { transform:translateY(-1px); border-color:#568ac0; background:linear-gradient(180deg,#1b4268,#102b48); box-shadow:inset 0 1px 0 #ffffff1f,0 7px 18px #0007; }
.menu-button.active { border-color:#e64a68; background:linear-gradient(180deg,#263d58,#18243a); box-shadow:inset 0 -2px 0 #e73d60,0 0 0 1px #e73d6033,0 8px 22px #0008; }
.menu-button.active:after { content:""; position:absolute; left:12px; right:12px; bottom:-10px; height:2px; background:#ec3f62; box-shadow:0 0 12px #ec3f62; }
.menu-icon { width:38px; height:38px; flex:0 0 auto; display:grid; place-items:center; border:1px solid #365a7f; border-radius:8px; background:linear-gradient(180deg,#112b49,#0a1b30); box-shadow:inset 0 1px 0 #ffffff13; }
.menu-icon svg,.summary-icon svg,.empty-state-icon svg { width:30px; height:30px; overflow:visible; }
.menu-icon svg path,.menu-icon svg circle,.summary-icon svg path,.summary-icon svg circle,.empty-state-icon svg path,.empty-state-icon svg circle { fill:none; stroke:#eaf4ff; stroke-width:1.55; stroke-linecap:round; stroke-linejoin:round; }
.menu-icon svg .icon-fill,.summary-icon svg .icon-fill,.empty-state-icon svg .icon-fill { stroke-width:1.3; }
.menu-icon svg .icon-fill-warm,.summary-icon svg .icon-fill-warm { fill:#a86735; }
.menu-icon svg .icon-fill-red,.summary-icon svg .icon-fill-red { fill:#df3c5d; }
.menu-icon svg .icon-fill-light,.summary-icon svg .icon-fill-light,.empty-state-icon svg .icon-fill-light { fill:#eef5ff; }
.menu-icon svg .icon-fill-panel,.summary-icon svg .icon-fill-panel { fill:#10223a; }
.menu-icon svg .icon-fill-blue,.summary-icon svg .icon-fill-blue,.empty-state-icon svg .icon-fill-blue { fill:#3b8fd7; }
.menu-icon svg .icon-fill-blue-soft,.summary-icon svg .icon-fill-blue-soft { fill:#9dccf4; }
.menu-icon svg .icon-highlight { stroke:#f4c58f; }
.menu-icon svg .icon-accent,.summary-icon svg .icon-accent { fill:#ec3f62; stroke:#be2445; }
.menu-copy { min-width:0; text-align:left; line-height:1; }
.menu-copy strong { display:block; color:#f5f9ff; font-size:10px; letter-spacing:.095em; }
.menu-copy small { display:block; overflow:hidden; margin-top:5px; color:#7e9abb; font-size:8px; font-weight:800; white-space:nowrap; }
.menu-notice { position:absolute; right:5px; top:5px; width:7px; height:7px; border:1px solid #ff9aac; border-radius:50%; background:#e93e61; box-shadow:0 0 8px #e93e61; }

.topbar-meta { height:100%; display:flex; align-items:center; justify-content:flex-end; gap:18px; }
.location { min-width:180px; text-align:right; }
.location strong { display:block; max-width:220px; overflow:hidden; color:#edf5ff; font-size:12px; white-space:nowrap; text-overflow:ellipsis; }
.connection { display:flex; align-items:center; gap:9px; }
.connection strong { display:block; color:#d8e6f7; font-size:10px; white-space:nowrap; }
#status-dot { width:9px; height:9px; border:2px solid #523e18; border-radius:50%; background:#f59e0b; box-shadow:0 0 10px #f59e0b; }
.connection #status-dot.online { border-color:#164b31; background:#31d981; box-shadow:0 0 10px #31d981; }
.exit-button { width:38px; height:38px; display:grid; place-items:center; padding:0; color:#9eb2cb; border:1px solid #36516f; border-radius:8px; background:#0a192b; transition:.16s; }
.exit-button:hover { color:#fff; border-color:#e04967; background:#36192a; }
.exit-button svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

.game-stage { min-width:0; min-height:0; position:relative; overflow:hidden; }
.canvas-wrap { width:100%; height:100%; min-width:0; min-height:0; position:relative; overflow:hidden; background:#080b11; }
#game-canvas { display:block; image-rendering:pixelated; }
.canvas-wrap:after { content:""; pointer-events:none; position:absolute; inset:0; box-shadow:inset 0 0 70px #02060cb8; }

.game-chat {
  position:absolute; z-index:18; left:18px; bottom:18px; width:min(410px,calc(100% - 36px)); height:230px;
  display:grid; grid-template-rows:34px minmax(0,1fr); overflow:hidden;
  border:1px solid #425572; border-radius:9px; background:rgba(8,13,22,.94); box-shadow:0 14px 35px #0009;
  color:#dbe7f5; font:500 12px Barlow,sans-serif; transition:width .18s ease,height .18s ease;
}
.chat-header { min-width:0; display:flex; align-items:center; gap:7px; padding:4px 5px 4px 9px; border-bottom:1px solid #2c3b50; background:linear-gradient(180deg,#17263a,#101b2a); }
.chat-header > strong { color:#e9f3ff; font-size:11px; letter-spacing:.04em; }
.chat-header-icon { width:15px; height:12px; position:relative; flex:none; border:1px solid #6f98c5; border-radius:4px; }
.chat-header-icon:after { content:""; position:absolute; left:2px; bottom:-4px; border-width:3px 3px 0 0; border-style:solid; border-color:#6f98c5 transparent transparent transparent; }
.chat-total-unread { width:17px; min-width:17px; height:17px; display:grid; place-items:center; flex:none; margin-left:1px; padding:0; border:1px solid #ff7b84; border-radius:50%; background:#c63e4b; box-shadow:0 2px 6px #0006; color:#fff; font:800 8px/17px Barlow,sans-serif; font-variant-numeric:tabular-nums; text-align:center; white-space:nowrap; pointer-events:none; animation:chat-unread-arrive .16s ease-out both; }
.chat-total-unread.hidden { display:none; }
.chat-total-unread.has-private { background:#a654d4; border-color:#c982ec; box-shadow:0 2px 7px #6d238a80; }
.chat-private-open { min-width:0; display:flex; gap:4px; margin-left:auto; }
.chat-private-open input { width:clamp(92px,26vw,118px); }
.chat-private-open input,.chat-compose input { min-width:0; border:1px solid #34465f; background:#0d1725; color:#f4f8ff; outline:none; }
.chat-private-open input:focus,.chat-compose input:focus { border-color:#73a9e8; box-shadow:0 0 0 2px #4f8dcc32; }
.chat-private-open button,.chat-compose button { border:1px solid #496788; background:#18304c; color:#eaf4ff; cursor:pointer; }
.chat-private-open button:hover,.chat-compose button:hover { background:#224669; }
.chat-private-open input,.chat-private-open button { height:25px; border-radius:4px; padding:0 7px; font:600 10px Barlow,sans-serif; }
.chat-toggle { width:27px; height:25px; display:grid; place-items:center; position:relative; flex:none; padding:0; border:1px solid #3c5877; border-radius:5px; background:linear-gradient(180deg,#1b3550,#10263d); box-shadow:inset 0 1px 0 #ffffff0d; color:#a9c4df; cursor:pointer; }
.chat-toggle:before,.chat-toggle:after { content:""; position:absolute; box-sizing:border-box; transition:transform .14s ease,border-color .14s ease,background-color .14s ease; }
.chat-toggle[data-chat-state="open"]:before { width:11px; height:2px; border-radius:2px; background:currentColor; }
.chat-toggle[data-chat-state="open"]:after { display:none; }
.chat-toggle[data-chat-state="minimized"]:before { width:11px; height:9px; border:1px solid currentColor; border-radius:2px; }
.chat-toggle[data-chat-state="minimized"]:after { width:7px; height:1px; top:9px; background:currentColor; opacity:.55; }
.chat-toggle:hover { border-color:#70a0d1; background:#203d5c; color:#fff; }
.chat-toggle:active { transform:translateY(1px); background:#0d2034; box-shadow:inset 0 2px 4px #0005; }
.chat-toggle:focus-visible { outline:2px solid #7fb8ef; outline-offset:1px; }
.chat-body { min-width:0; min-height:0; display:grid; grid-template-rows:36px minmax(0,1fr) auto auto; }
.chat-tabs { display:flex; gap:2px; min-height:36px; padding:5px 6px 0; overflow-x:auto; border-bottom:1px solid #2c3b50; }
.chat-tabs button { flex:none; height:30px; display:flex; align-items:center; gap:5px; border:0; border-radius:5px 5px 0 0; padding:0 10px; background:#111d2d; color:#91a2b8; cursor:pointer; }
.chat-tabs button.active { background:#243b57; color:#fff; }
.chat-tabs button b { min-width:16px; border-radius:8px; padding:1px 4px; background:#d34b56; color:#fff; font-size:9px; }
.chat-tabs button i { font-style:normal; color:#94a3b8; font-size:15px; line-height:1; }
.chat-messages { overflow:auto; padding:7px 10px; scrollbar-color:#506680 #111927; scrollbar-width:thin; }
.chat-messages p { position:relative; margin:0 0 4px; padding:2px 4px; border-left:2px solid transparent; border-radius:3px; line-height:1.35; overflow-wrap:anywhere; }
.chat-messages time { margin-right:6px; color:#64748b; font-size:10px; }
.game-record { color:#b8c8da; background:#101b292e; }
.game-record > span:before { content:""; display:inline-block; width:5px; height:5px; margin:0 7px 1px 0; border-radius:50%; background:#6f8eae; }
.game-record.tone-success { color:#a8dfbd; border-left-color:#4fb477; background:linear-gradient(90deg,#164b3029,transparent 72%); }
.game-record.tone-success > span:before { background:#55ca83; }
.game-record.tone-progress { color:#d9ecff; border-left-color:#54b9e8; background:linear-gradient(90deg,#174b6b4a,transparent 78%); }
.game-record.tone-progress > span { font-weight:600; }
.game-record.tone-progress > span:before { background:#f0c75e; box-shadow:0 0 5px #f0c75e80; }
.game-record.tone-error { color:#f0a2a8; border-left-color:#d95d68; background:linear-gradient(90deg,#5c20282b,transparent 72%); }
.game-record.tone-error > span:before { background:#e26b75; }
.game-record.tone-damage { color:#e6b0a2; border-left-color:#c97964; }
.game-record.tone-status { color:#b9b0e3; border-left-color:#7d70bd; }
.game-chat.is-records .chat-messages { padding-top:9px; }
.game-chat.is-records .chat-feedback { border-top:1px solid #25364b; padding-top:2px; padding-bottom:4px; }
.game-chat.is-records .chat-error { display:none; }
.chat-sender { display:inline-flex; align-items:center; gap:3px; border:0; padding:0; background:none; color:#8fc5ff; font:700 12px Barlow,sans-serif; cursor:pointer; }
.chat-sender:hover { text-decoration:underline; }
.chat-role-tag { position:relative; display:inline-flex; overflow:hidden; padding:1px 4px; border:1px solid currentColor; border-radius:3px; font-size:8px; line-height:10px; letter-spacing:.06em; }
.chat-role-icon { color:#ffd45f; font-size:11px; filter:drop-shadow(0 0 3px #efb82b99); }
.chat-message.role-owner { border-left-color:#dba936; background:linear-gradient(90deg,#5b430b32,transparent 72%); animation:chat-owner-breathe 4.8s ease-in-out infinite; }
.chat-message.role-gm { border-left-color:#d96372; background:linear-gradient(90deg,#6d23302b,transparent 68%); }
.chat-message.role-tutor { border-left-color:#46b986; background:linear-gradient(90deg,#174f3a24,transparent 62%); }
.chat-sender.role-owner { color:#ffd66f; text-shadow:0 0 6px #d9a52c70; }
.chat-sender.role-gm { color:#ff9b9b; text-shadow:0 0 4px #d9526250; }
.chat-sender.role-tutor { color:#8be2b8; text-shadow:0 0 3px #3aaa7850; }
.chat-sender.role-owner .chat-role-tag:after { content:""; position:absolute; inset:-2px auto -2px -12px; width:7px; background:#fff9; transform:skewX(-20deg); animation:chat-owner-shine 5.4s ease-in-out infinite; }
.chat-recipient { color:#91a2b8; font-size:11px; }
.chat-feedback { min-height:17px; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:0 10px; }
.chat-error { min-width:0; color:#ff8f98; font-size:10px; }
.chat-limit { flex:none; color:#70869f; font-size:9px; white-space:nowrap; }
.chat-compose { display:grid; grid-template-columns:minmax(0,1fr) 64px; gap:6px; padding:0 7px 7px; }
.chat-compose input,.chat-compose button { height:30px; border-radius:5px; padding:0 9px; }
.game-chat.is-minimized { width:min(220px,calc(100% - 36px)); height:36px; grid-template-rows:34px; box-shadow:0 8px 20px #0008; }
.game-chat.is-minimized .chat-header { border-bottom:0; }
.game-chat.is-minimized .chat-toggle { margin-left:auto; }
.game-chat.is-minimized .chat-private-open,.game-chat.is-minimized .chat-body { display:none; }

@keyframes chat-owner-breathe { 0%,100% { box-shadow:inset 0 0 0 #e9b93d00; } 50% { box-shadow:inset 2px 0 8px #e9b93d20; } }
@keyframes chat-owner-shine { 0%,68% { opacity:0; transform:translateX(0) skewX(-20deg); } 75% { opacity:.75; } 88%,100% { opacity:0; transform:translateX(42px) skewX(-20deg); } }
@keyframes chat-unread-arrive { from { opacity:0; transform:scale(.78); } to { opacity:1; transform:scale(1); } }

@media (max-width:700px),(max-height:700px) {
  .game-chat { left:8px; bottom:8px; width:min(410px,calc(100% - 16px)); height:190px; }
  .game-chat.is-minimized { width:min(210px,calc(100% - 16px)); height:36px; }
  .chat-feedback { align-items:flex-start; flex-direction:column; gap:1px; padding-bottom:2px; }
  .chat-limit { align-self:flex-end; }
}
@media (max-width:420px) {
  .chat-header { gap:4px; padding-inline:6px 4px; }
  .chat-private-open { gap:3px; }
  .chat-private-open button { padding-inline:5px; font-size:9px; }
}
@media (prefers-reduced-motion:reduce) {
  .game-chat { transition:none; }
  .chat-total-unread { animation:none; }
  .chat-message.role-owner,.chat-sender.role-owner .chat-role-tag:after { animation:none; }
}
.help { position:absolute; z-index:3; left:50%; bottom:15px; transform:translateX(-50%); display:flex; align-items:center; gap:7px; padding:7px 12px; color:#8fa8c6; border:1px solid #34516f; border-radius:7px; background:#071320e6; box-shadow:0 7px 18px #0008,inset 0 1px 0 #ffffff0d; font-size:9px; font-weight:800; letter-spacing:.06em; white-space:nowrap; }
.help span { padding:3px 6px; color:#e7f2ff; border:1px solid #41617f; border-radius:4px; background:#10263e; }
.help i { width:3px; height:3px; margin:0 2px; border-radius:50%; background:#e34060; box-shadow:0 0 7px #e34060; }
.hud-cluster { position:absolute; z-index:4; display:flex; gap:8px; }
.hud-cluster-left { left:16px; top:16px; }
.hud-profile,.hud-coordinate { height:48px; display:flex; align-items:center; gap:10px; padding:6px 12px 6px 7px; border:1px solid #355474; border-radius:9px; background:linear-gradient(180deg,#102944e8,#091a2de8); box-shadow:0 8px 20px #0009,inset 0 1px 0 #ffffff10; backdrop-filter:blur(5px); }
.hud-profile small,.hud-coordinate small { display:block; color:#7594b8; font-size:7px; font-weight:900; letter-spacing:.13em; }
.hud-profile strong,.hud-coordinate strong { display:block; margin-top:3px; color:#eff6ff; font-size:11px; }
.hud-avatar { width:34px; height:34px; display:grid; place-items:center; border:1px solid #456989; border-radius:7px; color:#e9f4ff; background:#143251; }
.hud-avatar svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; }
.hud-coordinate { min-width:133px; display:block; padding:9px 13px; }

.drawer-backdrop { pointer-events:none; position:absolute; z-index:9; inset:0; opacity:0; border:0; background:linear-gradient(90deg,transparent 25%,#02070db8); transition:opacity .22s; }
.drawer-backdrop.visible { pointer-events:auto; opacity:1; }
.game-drawer { position:absolute; z-index:10; top:0; right:0; bottom:0; width:min(430px,calc(100vw - 40px)); display:flex; flex-direction:column; overflow:hidden; border-left:1px solid #345677; background:linear-gradient(180deg,#102844 0%,#091829 34%,#071321 100%); box-shadow:-22px 0 55px #000b,inset 1px 0 0 #ffffff08; transform:translateX(calc(100% + 24px)); transition:transform .24s cubic-bezier(.2,.85,.25,1); }
.game-drawer.open { transform:translateX(0); }
.game-drawer:before { content:""; position:absolute; left:0; right:0; top:0; height:3px; background:linear-gradient(90deg,#2d80cc,#ec3f62); }
.drawer-header { flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; min-height:84px; padding:20px 22px; border-bottom:1px solid #2d4765; background:linear-gradient(180deg,#163554,#102842); }
.drawer-header .eyebrow { margin-bottom:5px; color:#7898bd; font-size:8px; }
.drawer-header h2 { margin:0; color:#f4f8ff; font-size:20px; letter-spacing:-.02em; }
.drawer-close { width:36px; height:36px; display:grid; place-items:center; padding:0; color:#91a9c4; border:1px solid #3a5b7c; border-radius:8px; background:#0c2138; }
.drawer-close:hover { color:#fff; border-color:#e24a68; background:#32192a; }
.drawer-close svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
.drawer-view { display:none; min-height:0; flex:1; overflow:auto; padding:20px 22px 28px; scrollbar-color:#355b80 #091827; scrollbar-width:thin; }
.drawer-view.active { display:block; }
.drawer-summary { display:flex; align-items:center; gap:14px; padding:15px; border:1px solid #315373; border-radius:11px; background:linear-gradient(135deg,#153552,#0d233a); box-shadow:inset 0 1px 0 #ffffff0e; }
.summary-icon { width:52px; height:52px; flex:0 0 auto; display:grid; place-items:center; border:1px solid #436887; border-radius:10px; background:#0b1d31; }
.summary-icon svg { width:38px; height:38px; }
.drawer-summary small,.friends-stats small,.travel-intro small,.destination-copy small { display:block; color:#7798bc; font-size:8px; font-weight:900; letter-spacing:.13em; }
.drawer-summary strong { display:block; margin-top:4px; color:#f2f7ff; font-size:14px; }
.drawer-summary p { margin:5px 0 0; color:#8198b4; font-size:10px; line-height:1.45; }
.filter-row { display:flex; gap:6px; margin:17px 0 12px; overflow:auto; }
.filter-chip { flex:0 0 auto; padding:7px 10px; color:#7490ae; border:1px solid #2b4868; border-radius:6px; background:#0a1a2c; font-size:8px; font-weight:900; letter-spacing:.08em; }
.filter-chip.active,.filter-chip:hover { color:#fff; border-color:#3d76a9; background:#143658; }
.inventory-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }
.inventory-slot { position:relative; aspect-ratio:1; border:1px solid #2e4c6a; border-radius:7px; background:linear-gradient(145deg,#102840,#081725); box-shadow:inset 0 1px 7px #0008,inset 0 1px 0 #ffffff0b; }
.inventory-slot:hover { border-color:#4f7fab; background:#15334f; }
.inventory-slot:before { content:""; position:absolute; inset:6px; border:1px dashed #284760; border-radius:4px; opacity:.65; }
.inventory-slot > span:not(.animated-item-visual) { position:absolute; right:4px; bottom:3px; color:#456683; font-size:7px; font-weight:900; }
.empty-note { display:grid; gap:3px; margin-top:15px; padding:11px 13px; color:#728ba7; border-left:2px solid #d83b5a; background:#0b1a2b; font-size:9px; line-height:1.4; }
.empty-note strong { color:#a9bdd3; font-size:9px; letter-spacing:.1em; }

.party-list { display:grid; gap:8px; margin-top:15px; }
.party-slot { width:100%; min-height:58px; display:flex; align-items:center; gap:11px; padding:8px 10px; color:#8ea5bf; border:1px solid #2c4967; border-radius:9px; background:linear-gradient(180deg,#0f263d,#091929); }
.party-slot:hover { border-color:#48759f; }
.party-slot.featured { border-color:#456f99; background:linear-gradient(180deg,#163551,#0c2237); }
.party-ball { position:relative; width:38px; height:38px; flex:0 0 auto; overflow:hidden; border:2px solid #6c8196; border-radius:50%; background:linear-gradient(#af3650 0 47%,#dbe5ef 48% 100%); opacity:.7; }
.party-ball:before { content:""; position:absolute; left:0; right:0; top:17px; height:3px; background:#526477; }
.party-ball span { position:absolute; z-index:2; left:12px; top:12px; width:10px; height:10px; border:2px solid #617487; border-radius:50%; background:#0d2135; }
.party-slot-copy { min-width:0; flex:1; text-align:left; }
.party-slot-copy strong { display:block; color:#dbe7f4; font-size:11px; }
.party-slot-copy small { display:block; margin-top:4px; color:#6f88a4; font-size:8px; }
.slot-status { padding:5px 7px; color:#8dc8ff; border:1px solid #35678f; border-radius:5px; background:#0b2943; font-size:7px; font-weight:900; letter-spacing:.1em; }
.drawer-footer-message { display:flex; align-items:center; gap:7px; margin-top:15px; color:#758ba4; font-size:9px; }
.status-light { width:7px; height:7px; border-radius:50%; background:#6e849b; }

.friends-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
.friends-stats div { padding:12px; border:1px solid #2d4b69; border-radius:8px; background:#0b1e31; }
.friends-stats strong { display:block; margin-top:4px; color:#e7f1fc; font-size:18px; }
.friends-stats .online-text { color:#42d990; }
.friend-search { position:relative; display:block; margin:14px 0; }
.friend-search span { position:absolute; z-index:2; left:11px; top:50%; width:17px; height:17px; color:#7893b2; transform:translateY(-50%); }
.friend-search svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.7; }
.friend-search input { margin:0; padding:11px 12px 11px 38px; border-color:#305171; border-radius:8px; background:#081827; font-size:11px; }
.empty-state { min-height:280px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:28px; text-align:center; border:1px dashed #2f506f; border-radius:11px; background:#091a2b99; }
.empty-state-icon { width:70px; height:70px; display:grid; place-items:center; margin-bottom:14px; border:1px solid #3e6486; border-radius:16px; background:#102b47; opacity:.85; }
.empty-state-icon svg { width:44px; height:44px; }
.empty-state strong { color:#dfeaf6; font-size:13px; }
.empty-state p { max-width:270px; margin:7px 0 17px; color:#7189a4; font-size:10px; line-height:1.55; }
.secondary-action { padding:9px 13px; color:#a8c8e7; border:1px solid #3a6792; border-radius:7px; background:#10304f; font-size:8px; font-weight:900; letter-spacing:.09em; }

.friends-request-form { display:flex; gap:8px; align-items:center; }
.friends-request-form .friend-search { flex:1; margin:0; }
.friends-request-form .secondary-action { flex:0 0 auto; min-height:37px; }
.friends-status { min-height:15px; margin:7px 0 0; color:#7692ae; font-size:9px; }
.friends-section { margin-top:18px; }
.friends-section.hidden { display:none; }
.friends-section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:7px; padding-bottom:7px; border-bottom:1px solid #294863; }
.friends-section-header small,.friends-group-label { color:#7798bc; font-size:8px; font-weight:900; letter-spacing:.13em; }
.friends-count { min-width:18px; padding:2px 5px; color:#b9d4ec; border:1px solid #365e82; border-radius:999px; background:#0b263e; font-size:8px; font-weight:900; text-align:center; }
.friends-list { display:grid; gap:6px; }
.friends-group-label { margin:5px 0 1px; color:#91acc7; }
.friend-row { display:flex; align-items:center; gap:9px; min-width:0; padding:9px; border:1px solid #2d4f6d; border-radius:8px; background:linear-gradient(180deg,#102d48,#0a2035); }
.friend-presence { width:8px; height:8px; flex:0 0 auto; border-radius:50%; background:#657a90; box-shadow:0 0 0 2px #061827; }
.friend-row.online .friend-presence { background:#45d897; box-shadow:0 0 8px #45d89782; }
.friend-presence.pending { background:#66aee5; }
.friend-copy { min-width:0; flex:1; }
.friend-copy strong,.friend-copy small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.friend-copy strong { color:#dceaf7; font-size:10px; }
.friend-copy small { margin-top:3px; color:#7893ad; font-size:8px; font-weight:800; letter-spacing:.05em; }
.friend-actions { display:flex; flex:0 0 auto; gap:5px; }
.friend-action { min-height:26px; padding:5px 7px; color:#a9c8e2; border:1px solid #365f83; border-radius:5px; background:#0c2943; font-size:7px; font-weight:900; letter-spacing:.06em; }
.friend-action:hover,.friend-action:focus-visible { color:#fff; border-color:#5c95bd; background:#143d61; }
.friend-action.accept { color:#a9efce; border-color:#3d8068; background:#0e3b36; }
.friend-action.destructive { color:#dfa8b5; border-color:#704352; background:#351d2a; }
.friends-empty { padding:20px 12px; color:#7792ac; border:1px dashed #315575; border-radius:8px; background:#071b2e80; font-size:10px; text-align:center; }

@media (max-width:420px) {
  .friends-request-form { align-items:stretch; flex-direction:column; }
  .friends-request-form .secondary-action { width:100%; }
  .friend-row { align-items:flex-start; flex-wrap:wrap; }
  .friend-actions { width:100%; padding-left:17px; }
}

.travel-intro { padding-bottom:14px; border-bottom:1px solid #2a4663; }
.travel-intro strong { display:block; margin-top:5px; color:#f0f6ff; font-size:16px; }
.travel-intro p { margin:6px 0 0; color:#7890aa; font-size:10px; line-height:1.5; }
.destination-list { display:grid; gap:10px; margin-top:14px; }
.destination-card { overflow:hidden; border:1px solid #2e4e6d; border-radius:10px; background:#0b1e31; transition:.17s; }
.destination-card.current { border-color:#4b85b5; box-shadow:0 0 0 1px #4b85b526,inset 0 1px 0 #ffffff0b; }
.destination-art { position:relative; height:72px; overflow:hidden; border-bottom:1px solid #2d4b69; background:#173552; }
.destination-art:before,.destination-art:after { content:""; position:absolute; }
.viridian-art { background:linear-gradient(180deg,#4d8fbe 0 45%,#326d54 46% 61%,#214438 62%); }
.viridian-art:before { left:15%; bottom:0; width:70%; height:39px; border:2px solid #d9e9f4; border-bottom:0; border-radius:15px 15px 0 0; background:linear-gradient(90deg,#e7edf2 0 38%,#bf3850 39% 61%,#e7edf2 62%); box-shadow:0 7px 20px #0005; }
.viridian-art:after { left:calc(50% - 6px); bottom:7px; width:12px; height:17px; border:1px solid #5b7182; background:#91bdd8; }
.gengar-art { background:radial-gradient(circle at 28% 25%,#66508a 0 3%,transparent 4%),radial-gradient(circle at 76% 40%,#7860a0 0 2%,transparent 3%),linear-gradient(180deg,#19152e,#342951 65%,#151526); }
.gengar-art:before { left:-5%; right:-5%; bottom:-26px; height:58px; border-radius:50% 50% 0 0; background:#1e1832; box-shadow:0 -9px 20px #8e4fc338; }
.gengar-art:after { left:20%; right:20%; bottom:10px; height:6px; border-radius:50%; background:#b85ee1; filter:blur(6px); opacity:.6; }
.destination-pin { position:absolute; z-index:4; right:13px; top:11px; width:22px; height:22px; border:2px solid #f5f8ff; border-radius:50% 50% 50% 0; background:#df3b5b; box-shadow:0 4px 10px #0007; transform:rotate(-45deg); }
.destination-pin:after { content:""; position:absolute; left:6px; top:6px; width:6px; height:6px; border-radius:50%; background:#fff; }
.destination-copy { padding:12px 13px; }
.destination-copy > div { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.destination-copy strong { display:block; margin-top:4px; color:#e8f1fb; font-size:12px; }
.destination-copy p { margin:7px 0 9px; color:#738aa4; font-size:9px; line-height:1.45; }
.destination-state { display:inline-flex; padding:5px 7px; color:#8eabc7; border:1px solid #2f5677; border-radius:5px; background:#0a2136; font-size:7px; font-weight:900; letter-spacing:.08em; }
.destination-card.current .destination-state { color:#7ce1ae; border-color:#2f7656; background:#0b3024; }
.travel-primary { width:100%; min-height:47px; display:flex; align-items:center; justify-content:center; gap:10px; margin-top:14px; color:#fff; border:1px solid #f05a78; border-radius:8px; background:linear-gradient(180deg,#e74466,#bd2747); box-shadow:0 9px 22px #c6264b4d,inset 0 1px 0 #ffffff2b; font-size:9px; font-weight:900; letter-spacing:.09em; }
.travel-primary:hover { filter:brightness(1.08); }
.travel-primary svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

@media (max-width:1180px) {
  .game-topbar { grid-template-columns:185px minmax(330px,1fr) auto; }
  .game-brand { padding:0 12px; }
  .game-brand strong { font-size:14px; }
  .game-brand small { font-size:7px; }
  .top-menu { gap:5px; padding:0 8px; }
  .menu-button { min-width:72px; padding:7px; justify-content:center; }
  .menu-copy small { display:none; }
  .menu-copy strong { font-size:8px; }
  .location { min-width:130px; }
}
@media (max-width:920px) {
  .game-topbar { grid-template-columns:150px 1fr auto; }
  .game-brand strong { font-size:12px; }
  .game-brand small { display:none; }
  .mini-mark { width:31px; height:31px; }
  .menu-button { min-width:52px; width:52px; }
  .menu-copy { display:none; }
  .menu-icon { width:36px; height:36px; border:0; background:transparent; box-shadow:none; }
  .location { display:none; }
  .connection div { display:none; }
  .topbar-meta { gap:10px; }
}
@media (max-width:650px) {
  body { overflow:auto; }
  .auth-shell { place-items:center; padding:16px; background-position:center top; }
  .auth-card { width:min(410px,100%); padding:22px 20px 20px; transform:translateY(clamp(28px,6vh,52px)); }
  .game-shell { min-width:620px; }
  .game-drawer { width:390px; }
}


/* POLIMENTO VISUAL — HUD v0.4.1 / BARLOW */
:root {
  --radius-2:2px;
  --radius-4:4px;
  --radius-6:6px;
  --radius-8:8px;
  --panel-highlight:#ffffff16;
  --panel-shadow:#00000080;
  --blue-edge:#39658e;
  --blue-edge-soft:#294b6d;
  --red-accent:#e44262;
  --red-accent-deep:#bd2748;
  font-family:"Barlow",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
html,body,button,input,textarea,select { font-family:"Barlow",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
body { -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
button,input { border-radius:var(--radius-6); }

/* Seleção de personagem — mesma identidade visual da HUD */
input { border-radius:var(--radius-6); border-color:#35506f; background:#081423; }
.primary,.travel-button { border-radius:var(--radius-6); background:linear-gradient(180deg,#ef4d6d,#bd2748); box-shadow:0 8px 22px #b51e414f,inset 0 1px 0 #ffffff26; }
.ghost { border-radius:var(--radius-6); }
.character-card,.modal form { border-radius:var(--radius-8); }

/* Barra superior */
.game-shell { grid-template-rows:74px minmax(0,1fr); }
.game-topbar {
  grid-template-columns:225px minmax(420px,1fr) auto;
  padding-right:16px;
  border-bottom-color:#315677;
  background:
    linear-gradient(90deg,#0c1c30 0,#112a46 24%,#0d2037 72%,#091725 100%);
  box-shadow:0 12px 34px #000c,inset 0 1px 0 #ffffff18;
}
.game-topbar:before { content:""; position:absolute; z-index:2; left:0; right:0; top:0; height:1px; background:linear-gradient(90deg,transparent,#8ac6ff73 32%,#ffffff3b 50%,#8ac6ff73 68%,transparent); }
.game-topbar:after { height:2px; opacity:.8; background:linear-gradient(90deg,transparent 3%,#347fc0 27%,#e44262 50%,#347fc0 73%,transparent 97%); }
.game-brand { border-right-color:#315271; background:linear-gradient(90deg,#071523d9,#10264073 72%,transparent); }
.game-brand strong { font-size:18px; font-weight:900; letter-spacing:.065em; text-shadow:0 2px 10px #0009; }
.game-brand small,.location small,.connection small { color:#83a1c3; font-weight:800; }

.top-menu { gap:7px; }
.menu-button {
  height:56px;
  min-width:116px;
  gap:10px;
  padding:7px 12px 7px 8px;
  border-color:#355c80;
  border-radius:var(--radius-6);
  background:linear-gradient(180deg,#193b5d 0%,#102946 48%,#0c2139 100%);
  box-shadow:inset 0 1px 0 #ffffff1b,inset 0 -1px 0 #02081280,0 5px 14px #0007;
}
.menu-button:before { content:""; position:absolute; pointer-events:none; left:1px; right:1px; top:1px; height:1px; border-radius:var(--radius-4); background:linear-gradient(90deg,transparent,#ffffff1f,transparent); }
.menu-button:hover { border-color:#5d91bf; background:linear-gradient(180deg,#205077,#143758 52%,#102b48); box-shadow:inset 0 1px 0 #ffffff24,0 8px 20px #0008; }
.menu-button.active { border-color:#e05270; background:linear-gradient(180deg,#244965,#172f4b 50%,#14253c); box-shadow:inset 3px 0 0 var(--red-accent),inset 0 1px 0 #ffffff20,0 8px 22px #0009; }
.menu-button.active:after { left:9px; right:9px; bottom:-10px; border-radius:var(--radius-2); }
.menu-icon { width:40px; height:40px; border-color:#45739b; border-radius:var(--radius-6); background:linear-gradient(180deg,#153a5f,#0b223c); box-shadow:inset 0 1px 0 #ffffff1c,inset 0 -1px 0 #0007; }
.menu-copy strong { font-size:11px; font-weight:900; letter-spacing:.08em; }
.menu-copy small { margin-top:4px; color:#91aac6; font-size:8px; font-weight:600; letter-spacing:.025em; }
.menu-notice { border-radius:50%; }
.location strong { font-size:12px; font-weight:700; }
.connection strong { font-weight:700; }
.exit-button { border-radius:var(--radius-6); border-color:#3d6286; background:linear-gradient(180deg,#102a46,#091b30); box-shadow:inset 0 1px 0 #ffffff13; }

/* HUD sobre o mapa */
.help { border-radius:var(--radius-6); border-color:#3d6387; background:linear-gradient(180deg,#0c2137ed,#071624f2); box-shadow:0 8px 20px #0009,inset 0 1px 0 #ffffff12; font-weight:700; }
.help span { border-radius:var(--radius-4); }
.hud-profile,.hud-coordinate { border-radius:var(--radius-6); border-color:#3b6387; background:linear-gradient(180deg,#153655ed,#0a2037ed); box-shadow:0 9px 22px #0009,inset 0 1px 0 #ffffff18; }
.hud-avatar { border-radius:var(--radius-6); background:linear-gradient(180deg,#1b456c,#102d4a); }

/* Painel lateral */
.game-drawer { border-left-color:#3c6589; border-radius:var(--radius-8) 0 0 var(--radius-8); background:linear-gradient(180deg,#132f4e 0%,#0b2036 28%,#071523 100%); box-shadow:-24px 0 60px #000c,inset 1px 0 0 #ffffff0d; }
.game-drawer:before { height:2px; }
.drawer-header { min-height:82px; padding:19px 22px; border-bottom-color:#355a7d; background:linear-gradient(180deg,#1a4164,#112e4b); box-shadow:inset 0 1px 0 #ffffff17; }
.drawer-header h2 { font-size:21px; font-weight:800; letter-spacing:-.015em; }
.drawer-header .eyebrow { font-weight:800; }
.drawer-close { border-radius:var(--radius-6); border-color:#466e94; background:linear-gradient(180deg,#153b5f,#0b2642); }
.drawer-view { padding:20px 22px 28px; }
.drawer-summary { border-radius:var(--radius-8); border-color:#3a6489; background:linear-gradient(135deg,#1b466b,#102e4c 62%,#0d263f); box-shadow:inset 0 1px 0 #ffffff19,0 7px 18px #0005; }
.summary-icon { border-radius:var(--radius-6); border-color:#4c7ba2; background:linear-gradient(180deg,#123657,#0b233c); box-shadow:inset 0 1px 0 #ffffff18; }
.drawer-summary strong { font-size:15px; font-weight:800; }
.drawer-summary p { color:#91a9c2; font-size:10px; font-weight:500; }
.filter-chip { border-radius:var(--radius-4); border-color:#345b7f; background:linear-gradient(180deg,#0f2944,#0a1d32); }
.filter-chip.active,.filter-chip:hover { border-color:#588ab6; background:linear-gradient(180deg,#1c4d75,#123653); box-shadow:inset 0 1px 0 #ffffff16; }
.inventory-slot { border-radius:var(--radius-6); border-color:#355c7d; background:linear-gradient(145deg,#153552,#0a1c2f); }
.inventory-slot:before { border-radius:var(--radius-2); }
.empty-note { border-radius:0 var(--radius-4) var(--radius-4) 0; }

.party-slot { border-radius:var(--radius-6); border-color:#365d7e; background:linear-gradient(180deg,#143553,#0b2239); box-shadow:inset 0 1px 0 #ffffff0e; }
.party-slot.featured { border-color:#5283ae; background:linear-gradient(180deg,#1b4668,#102f4b); box-shadow:inset 3px 0 0 var(--red-accent),inset 0 1px 0 #ffffff17; }
.party-slot-copy strong { font-weight:800; }
.slot-status { border-radius:var(--radius-4); }
.friends-stats div { border-radius:var(--radius-6); border-color:#365f82; background:linear-gradient(180deg,#102e4b,#0a2138); box-shadow:inset 0 1px 0 #ffffff0e; }
.friend-search input { border-radius:var(--radius-6); }
.empty-state { border-radius:var(--radius-8); border-color:#3a6285; background:linear-gradient(180deg,#0d2944b8,#081a2db8); }
.empty-state-icon { border-radius:var(--radius-8); }
.secondary-action { border-radius:var(--radius-6); background:linear-gradient(180deg,#17486e,#0e304f); }

.destination-card { border-radius:var(--radius-8); border-color:#385f81; background:linear-gradient(180deg,#102d48,#0a2035); box-shadow:inset 0 1px 0 #ffffff0c,0 7px 18px #0004; }
.destination-card:hover { transform:translateY(-1px); border-color:#5b88ae; box-shadow:inset 0 1px 0 #ffffff13,0 10px 24px #0006; }
.destination-card.current { border-color:#5a91bd; box-shadow:inset 3px 0 0 var(--red-accent),0 0 0 1px #5a91bd22,0 9px 24px #0005; }
.destination-art { border-radius:var(--radius-6) var(--radius-6) 0 0; }
.destination-state { border-radius:var(--radius-4); }
.travel-primary { border-radius:var(--radius-6); background:linear-gradient(180deg,#ef4c6d,#bd2748); box-shadow:0 9px 24px #b91f454d,inset 0 1px 0 #ffffff2d; }

@media (max-width:1180px) {
  .game-topbar { grid-template-columns:185px minmax(330px,1fr) auto; }
  .menu-button { min-width:74px; }
}

/* POKÉMON CORE E COMBATE — v0.5 */
.battle-hud {
  position:absolute; z-index:6; left:50%; bottom:48px; width:min(1180px,calc(100% - 34px));
  transform:translateX(-50%); display:grid; grid-template-columns:250px 230px minmax(420px,1fr); gap:8px;
  pointer-events:none; align-items:end;
}
.battle-pokemon-card,.target-card,.move-dock {
  pointer-events:auto; border:1px solid #3c6487; border-radius:8px;
  background:linear-gradient(180deg,rgba(19,49,79,.96),rgba(7,23,40,.97));
  box-shadow:0 12px 34px #000b,inset 0 1px 0 #ffffff18;
  backdrop-filter:blur(6px);
}
.battle-pokemon-card { min-height:96px; display:grid; grid-template-columns:58px minmax(0,1fr) auto; align-items:center; gap:8px; padding:9px; }
.battle-pokemon-card img { width:58px; height:58px; object-fit:contain; image-rendering:pixelated; filter:drop-shadow(0 5px 5px #0008); }
.battle-pokemon-copy { min-width:0; }
.battle-pokemon-copy>div:first-child { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px; }
.battle-pokemon-copy strong { overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.battle-pokemon-copy>div:first-child span { flex:0 0 auto; padding:2px 5px; color:#b9d7f5; border:1px solid #416c91; border-radius:4px; background:#0b2239; font-size:8px; font-weight:900; }
.battle-resource-line { display:grid!important; grid-template-columns:18px minmax(50px,1fr) 70px; align-items:center; gap:5px; margin:3px 0!important; }
.battle-resource-line small { color:#87a4c3; font-size:7px; font-weight:900; }
.battle-resource-line em { color:#bed0e5; font-size:8px; font-style:normal; text-align:right; white-space:nowrap; }
.battle-bar { height:6px; overflow:hidden; border:1px solid #18324e; border-radius:3px; background:#071522; }
.battle-bar span { display:block; width:100%; height:100%; transition:width .25s ease; }
.battle-bar.hp span { background:linear-gradient(90deg,#27b865,#65e696); }
.pokemon-toggle { align-self:stretch; width:48px; padding:4px; color:#fff; border:1px solid #ef617c; border-radius:6px; background:linear-gradient(180deg,#e84767,#a91f3e); font-size:8px; font-weight:900; letter-spacing:.04em; writing-mode:vertical-rl; transform:rotate(180deg); }
.pokemon-toggle:hover { filter:brightness(1.12); }
.pokemon-toggle:disabled { cursor:not-allowed; opacity:.45; }

.target-card { min-height:96px; padding:9px; }
.target-card .target-content { height:100%; display:grid; grid-template-columns:58px minmax(0,1fr); align-items:center; gap:8px; }
.target-card .target-empty-copy { display:none; height:76px; align-content:center; text-align:center; }
.target-card.empty .target-content { display:none; }
.target-card.empty .target-empty-copy { display:grid; }
.target-empty-copy small,.target-content small { color:#7f9cbb; font-size:8px; font-weight:900; letter-spacing:.1em; }
.target-empty-copy strong { margin-top:5px; color:#b9cbe0; font-size:11px; }
.target-portrait-frame { width:58px; height:58px; }
.target-content img { width:58px; height:58px; object-fit:contain; image-rendering:pixelated; filter:drop-shadow(0 5px 5px #0008); }
.target-content>div { min-width:0; }
.target-content strong { display:block; margin-top:2px; overflow:hidden; color:#f4d2ff; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.target-content span { color:#a9bed4; font-size:8px; }
.target-hp-bar { height:7px; overflow:hidden; margin:6px 0 3px; border:1px solid #18324e; border-radius:3px; background:#071522; }
.target-hp-bar span { display:block; width:100%; height:100%; background:linear-gradient(90deg,#dd3756,#ff7b8f); transition:width .25s; }
.target-content em { color:#bdcde0; font-size:8px; font-style:normal; }
.target-content p { margin:4px 0 0; color:#f4bd62; font-size:7px; font-weight:900; }

.move-dock { display:grid; grid-template-columns:repeat(4,minmax(102px,1fr)); gap:5px; padding:7px; }
.move-button { position:relative; min-height:42px; display:grid; grid-template-columns:25px minmax(0,1fr); align-items:center; gap:5px; padding:5px 7px 5px 5px; overflow:hidden; color:#eef6ff; border:1px solid #3d6384; border-radius:6px; background:linear-gradient(180deg,#173b5d,#0c2742); text-align:left; box-shadow:inset 0 1px 0 #ffffff12; }
.move-button:hover:not(:disabled) { transform:translateY(-1px); border-color:#76a5cd; filter:brightness(1.12); }
.move-button img { width:25px; height:25px; object-fit:contain; image-rendering:pixelated; }
.move-button span { min-width:0; }
.move-button strong { display:block; overflow:hidden; font-size:9px; font-weight:900; text-overflow:ellipsis; white-space:nowrap; }
.move-button small { display:block; margin-top:2px; overflow:hidden; color:#88a4c1; font-size:6px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.move-button>em { position:absolute; right:4px; bottom:3px; color:#91a9c3; font-size:6px; font-style:normal; font-weight:900; }
.move-button kbd { position:absolute; top:2px; right:3px; color:#fff; border:0; background:transparent; font:800 7px Barlow,sans-serif; opacity:.65; }
.move-button.type-fire { border-color:#70435a; background:linear-gradient(180deg,#552a3e,#29192b); }
.move-button.type-normal { background:linear-gradient(180deg,#35465a,#1a293b); }
.move-button.locked { filter:grayscale(.8); opacity:.48; }
.move-button:disabled { cursor:not-allowed; }
.move-cooldown { position:absolute; inset:0; display:none; place-items:center; color:#fff; background:#040b13c7; font-size:15px; font-style:normal; font-weight:900; text-shadow:0 2px 5px #000; }
.move-cooldown.active { display:grid; }

.game-notice { position:absolute; z-index:30; left:50%; top:72px; max-width:520px; padding:9px 14px; transform:translate(-50%,-12px); pointer-events:none; opacity:0; color:#dff5e8; border:1px solid #3f8d68; border-radius:6px; background:#0b2f22ee; box-shadow:0 12px 30px #000b; font-size:11px; font-weight:700; transition:.2s; }
.game-notice.visible { transform:translate(-50%,0); opacity:1; }
.game-notice.error { color:#ffd9de; border-color:#a74358; background:#3c1420ee; }

.party-sprite-wrap { width:48px; height:48px; display:grid; place-items:center; border:1px solid #47749a; border-radius:6px; background:radial-gradient(circle,#214c70,#0c2239); }
.party-sprite-wrap img { width:58px; height:40px; object-fit:contain; image-rendering:pixelated; }
.pokemon-party-slot { grid-template-columns:52px minmax(0,1fr) auto; min-height:70px; }
.party-mini-bar { height:6px; overflow:hidden; margin-top:6px; border:1px solid #17314b; border-radius:3px; background:#071521; }
.party-mini-bar span { display:block; width:100%; height:100%; background:linear-gradient(90deg,#29b968,#62e596); }
.party-slot-copy em { display:block; margin-top:3px; color:#a9bdd2; font-size:8px; font-style:normal; }
.slot-status { min-width:52px; text-align:center; }
.pokemon-detail-card { margin-top:12px; padding:13px; border:1px solid #3b6386; border-radius:8px; background:linear-gradient(180deg,#12314f,#091f35); box-shadow:inset 0 1px 0 #ffffff12; }
.pokemon-detail-card header { display:flex; align-items:center; justify-content:space-between; }
.pokemon-detail-card header small { display:block; color:#7595b6; font-size:7px; font-weight:900; letter-spacing:.12em; }
.pokemon-detail-card header strong { display:block; margin-top:3px; font-size:14px; }
.pokemon-detail-card header>span { padding:4px 7px; color:#ffc9d3; border:1px solid #a94861; border-radius:4px; background:#481729; font-size:8px; font-weight:900; }
.pokemon-stat-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:5px; margin:12px 0; }
.pokemon-stat-grid div { padding:7px 4px; text-align:center; border:1px solid #315878; border-radius:5px; background:#0a2239; }
.pokemon-stat-grid small { display:block; color:#6f8fae; font-size:6px; font-weight:900; }
.pokemon-stat-grid strong { display:block; margin-top:3px; font-size:12px; }
.pokemon-individual-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; margin:-5px 0 12px; }
.pokemon-individual-grid div { min-width:0; padding:6px 4px; text-align:center; border:1px solid #315878; border-radius:5px; background:#0a2239; }
.pokemon-individual-grid small { display:block; color:#6f8fae; font-size:6px; font-weight:900; }
.pokemon-individual-grid strong { display:block; overflow:hidden; margin-top:3px; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.pokemon-individual-held{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:8px;margin:-5px 0 12px;padding:6px 8px;border:1px solid #315878;border-radius:5px;background:#0a2239}.pokemon-individual-held>img,.pokemon-individual-held>.animated-item-visual{width:30px;height:30px;object-fit:contain;image-rendering:pixelated}.pokemon-individual-held>.animated-item-visual .animated-item-fallback,.pokemon-individual-held>.animated-item-visual .animated-item-viewport{width:30px;height:30px}.pokemon-individual-held>span:not(.animated-item-visual){display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:1px}.pokemon-individual-held small{color:#6f8fae;font-size:6px;font-weight:900;letter-spacing:.08em}.pokemon-individual-held strong{overflow:hidden;max-width:100%;color:#e9f7ff;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.pokemon-individual-held em{color:#8fb5c8;font-size:8px;font-style:normal}.pokemon-individual-held button{min-height:25px;padding:0 7px;border:1px solid #37637a;border-radius:5px;background:#102c3d;color:#bfe7f7;font-size:7px;font-weight:800}.pokemon-individual-held .pokemon-held-empty{grid-column:1/-1;align-items:center;text-align:center}
.pokemon-quality-summary {
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  max-width:100%;
  min-width:0;
  gap:5px;
  color:#849bac;
  font:800 8px/1.1 Barlow,sans-serif;
  white-space:nowrap;
}
.pokemon-quality-tier {
  display:inline-flex;
  align-items:center;
  min-height:16px;
  padding:2px 6px;
  border:1px solid #526676;
  border-radius:4px;
  background:#172633;
  color:#b8c5ce;
  font-size:7px;
  font-weight:900;
  letter-spacing:.04em;
}
.pokemon-quality-tier[data-tier="uncommon"] { border-color:#3f7658; background:#102b20; color:#7fd39c; }
.pokemon-quality-tier[data-tier="rare"] { border-color:#3f6f9c; background:#10263b; color:#72b5ff; }
.pokemon-quality-tier[data-tier="epic"] { border-color:#74509a; background:#28183a; color:#d096ff; }
.pokemon-quality-tier[data-tier="legendary"] { border-color:#8b6c2c; background:#30240d; color:#ffd166; }
.pokemon-quality-values { display:inline-flex; align-items:center; min-width:0; gap:4px; color:#8298a8; }
.pokemon-quality-values i { color:#4f6d80; font-style:normal; }
#detail-pokemon-tier { display:block; margin-top:4px; }
#detail-pokemon-tier .pokemon-quality-tier { justify-content:center; }
.pokemon-card-meta-row { display:flex; align-items:center; flex-wrap:wrap; min-width:0; gap:4px 8px; }
.pokemon-card-meta-row > small { min-width:0; flex:1 1 auto; overflow:hidden; text-align:right; text-overflow:ellipsis; white-space:nowrap; }
.depot-pokemon-copy .pokemon-quality-summary,
.mark-shop-item-copy .pokemon-quality-summary { margin-top:2px; }
.pokemon-drawer-action { width:100%; }
.drawer-footer-message .status-light.online { background:#35d982; box-shadow:0 0 8px #35d982; }

@media (max-width:1100px) {
  .battle-hud { grid-template-columns:230px 210px minmax(360px,1fr); }
  .move-dock { grid-template-columns:repeat(2,minmax(120px,1fr)); }
}
@media (max-width:850px) {
  .battle-hud { left:10px; right:10px; width:auto; transform:none; grid-template-columns:1fr 1fr; }
  .move-dock { grid-column:1/-1; }
}

/* NURSE JOY E VIDA DO TREINADOR — v0.5.2 */
.trainer-vitals { min-width:112px; }
.trainer-vitals strong { margin-top:1px!important; overflow:hidden; max-width:122px; text-overflow:ellipsis; white-space:nowrap; }
.trainer-vitals>span { display:block; margin-top:1px; color:#a8bed5; font-size:7px; font-weight:700; }
.trainer-hp-bar { width:100%; height:4px; margin-top:3px; overflow:hidden; border:1px solid #17324c; border-radius:2px; background:#061421; }
.trainer-hp-bar i { display:block; width:100%; height:100%; border-radius:1px; background:linear-gradient(90deg,#27b865,#65e696); transition:width .25s ease; }
.battle-pokemon-card { min-height:88px; }

/* HUD DE BATALHA COMPACTA — v0.5.3 */
.battle-hud {
  position:absolute;
  inset:0;
  z-index:6;
  width:auto;
  display:block;
  transform:none;
  pointer-events:none;
}

.battle-party-rail {
  position:absolute;
  left:14px;
  top:78px;
  width:64px;
  display:grid;
  justify-items:center;
  gap:5px;
  padding:7px 5px;
  pointer-events:auto;
  border:1px solid #355b7e;
  border-radius:8px;
  background:linear-gradient(180deg,rgba(18,48,77,.97),rgba(7,22,38,.97));
  box-shadow:0 14px 34px #000a,inset 0 1px 0 #ffffff17;
  backdrop-filter:blur(6px);
}
.party-rail-header {
  width:52px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 2px 3px;
  color:#7393b5;
  border-bottom:1px solid #2e4d6c;
  font-size:7px;
  font-weight:900;
  letter-spacing:.1em;
}
.party-rail-header strong { color:#dceaff; font-size:8px; letter-spacing:0; }

.battle-pokemon-card {
  position:relative;
  width:52px;
  min-height:58px;
  display:block;
  padding:4px;
  overflow:hidden;
  border:1px solid #4e7ca5;
  border-radius:7px;
  background:radial-gradient(circle at 50% 35%,#285b84 0,#153b5d 45%,#0b2238 100%);
  box-shadow:inset 0 1px 0 #ffffff1c,0 4px 12px #0008;
}
.battle-pokemon-card:after {
  content:"";
  position:absolute;
  right:4px;
  top:4px;
  width:6px;
  height:6px;
  border:1px solid #17334d;
  border-radius:50%;
  background:#728aa3;
}
.battle-pokemon-card.summoned {
  border-color:#50c98b;
  box-shadow:inset 0 1px 0 #ffffff20,0 0 0 1px #38b97a26,0 5px 15px #0008;
}
.battle-pokemon-card.summoned:after { background:#43dc8c; box-shadow:0 0 7px #43dc8c; }
.battle-pokemon-card.defeated {
  border-color:#b5425b;
  filter:saturate(.45);
}
.battle-pokemon-card.defeated:after { background:#ef4967; box-shadow:0 0 7px #ef4967; }
.battle-pokemon-card img {
  width:44px;
  height:44px;
  display:block;
  object-fit:contain;
  image-rendering:pixelated;
  filter:drop-shadow(0 4px 4px #0009);
}
.battle-party-index {
  position:absolute;
  z-index:2;
  left:3px;
  top:3px;
  min-width:13px;
  height:13px;
  display:grid;
  place-items:center;
  color:#f4f8ff;
  border:1px solid #517a9e;
  border-radius:3px;
  background:#071827df;
  font-size:7px;
  font-weight:900;
}
.battle-party-hp {
  position:absolute;
  z-index:2;
  left:4px;
  right:4px;
  bottom:4px;
  height:4px;
  overflow:hidden;
  border:1px solid #102a40;
  border-radius:2px;
  background:#06131e;
}
.battle-party-hp span {
  display:block;
  width:100%;
  height:100%;
  border-radius:1px;
  background:linear-gradient(90deg,#29b969,#65e69a);
  transition:width .25s ease;
}
.battle-pokemon-card.defeated .battle-party-hp span { background:#c63d56; }
.battle-pokemon-copy { display:none; }

.battle-party-empty {
  position:relative;
  width:52px;
  height:36px;
  display:grid;
  place-items:center;
  color:#4e6e8d;
  border:1px solid #294967;
  border-radius:6px;
  background:linear-gradient(180deg,#0e2942,#081b2d);
  box-shadow:inset 0 1px 0 #ffffff08;
}
.battle-party-empty span {
  position:absolute;
  left:4px;
  top:3px;
  font-size:7px;
  font-weight:900;
}
.battle-party-empty i {
  position:relative;
  width:17px;
  height:17px;
  border:2px solid #456680;
  border-radius:50%;
  opacity:.55;
}
.battle-party-empty i:before {
  content:"";
  position:absolute;
  left:-2px;
  right:-2px;
  top:6px;
  height:2px;
  background:#456680;
}
.battle-party-empty i:after {
  content:"";
  position:absolute;
  left:4px;
  top:4px;
  width:5px;
  height:5px;
  border:1px solid #456680;
  border-radius:50%;
  background:#0a1e31;
}
.pokemon-toggle {
  width:52px;
  height:29px;
  padding:0 3px;
  color:#fff;
  border:1px solid #e55370;
  border-radius:5px;
  background:linear-gradient(180deg,#e64867,#a8203e);
  box-shadow:inset 0 1px 0 #ffffff20;
  font-size:7px;
  font-weight:900;
  letter-spacing:.04em;
  writing-mode:horizontal-tb;
  transform:none;
}
.pokemon-toggle:hover:not(:disabled) { filter:brightness(1.12); }

.target-card {
  position:absolute;
  left:50%;
  top:15px;
  width:244px;
  min-height:72px;
  padding:7px 9px;
  transform:translateX(-50%);
  pointer-events:auto;
  border-radius:7px;
}
.target-card .target-content {
  grid-template-columns:50px minmax(0,1fr);
  gap:8px;
}
.target-portrait-frame { width:50px; height:50px; }
.target-content img { width:50px; height:50px; }
.target-card .target-empty-copy { height:56px; }
.target-empty-copy strong { font-size:10px; }
.target-content strong { font-size:12px; }
.target-hp-bar { height:6px; margin:5px 0 2px; }

.move-dock {
  position:absolute;
  left:50%;
  bottom:50px;
  width:auto;
  display:grid;
  grid-template-columns:repeat(8,48px);
  gap:6px;
  padding:7px;
  transform:translateX(-50%);
  pointer-events:auto;
  border:1px solid #3b6386;
  border-radius:8px;
  background:linear-gradient(180deg,rgba(17,44,71,.96),rgba(6,20,34,.97));
  box-shadow:0 14px 34px #000b,inset 0 1px 0 #ffffff15;
  backdrop-filter:blur(6px);
}
.move-dock.hidden { display: none; }

.swap-cooldown {
  cursor: not-allowed;
  opacity: .62;
}
.move-button {
  position:relative;
  width:48px;
  height:48px;
  min-height:0;
  display:grid;
  grid-template-columns:none;
  place-items:center;
  gap:0;
  padding:5px;
  overflow:hidden;
  color:#fff;
  border:1px solid #456b8e;
  border-radius:6px;
  background:linear-gradient(180deg,#183c5d,#0b2741);
  box-shadow:inset 0 1px 0 #ffffff16,0 4px 10px #0006;
  text-align:center;
}
.move-button:hover:not(:disabled) {
  transform:translateY(-2px);
  border-color:#78a9d1;
  filter:brightness(1.12);
  box-shadow:inset 0 1px 0 #ffffff20,0 7px 15px #0008;
}
.move-button img {
  width:36px;
  height:36px;
  display:block;
  object-fit:contain;
  image-rendering:pixelated;
  filter:drop-shadow(0 3px 3px #0008);
}
.move-button kbd {
  position:absolute;
  z-index:3;
  left:3px;
  top:3px;
  min-width:14px;
  height:14px;
  display:grid;
  place-items:center;
  padding:0 3px;
  color:#f7fbff;
  border:1px solid #5c83a5;
  border-radius:3px;
  background:#061522e8;
  font:900 8px "Barlow",sans-serif;
  opacity:1;
}
.move-button.type-fire { border-color:#875067; background:linear-gradient(180deg,#613047,#2d1a2d); }
.move-button.type-normal { border-color:#526a83; background:linear-gradient(180deg,#3c4e62,#1b2b3d); }
.move-button.locked {
  border-color:#33495e;
  background:linear-gradient(180deg,#263747,#162432);
  filter:grayscale(.85);
  opacity:.48;
}
.move-button.locked:after {
  content:"";
  position:absolute;
  right:4px;
  bottom:4px;
  width:8px;
  height:7px;
  border:1px solid #b6c5d4;
  border-radius:2px;
  background:#0a1722;
  box-shadow:0 -4px 0 -2px #0a1722,0 -4px 0 -1px #b6c5d4;
}
.move-cooldown {
  position:absolute;
  z-index:2;
  inset:0;
  display:none;
  place-items:center;
  color:#fff;
  border-radius:5px;
  background:#020912c9;
  font-size:16px;
  font-style:normal;
  font-weight:900;
  text-shadow:0 2px 5px #000;
}
.move-cooldown.active { display:grid; }

@media (max-width:760px) {
  .battle-party-rail { left:8px; top:70px; }
  .target-card { top:8px; width:220px; }
  .move-dock {
    bottom:46px;
    grid-template-columns:repeat(4,44px);
    gap:5px;
    padding:6px;
  }
  .move-button { width:44px; height:44px; }
  .move-button img { width:32px; height:32px; }
}

/* HUD DE BATALHA REFINADA — v0.5.4 */
/* Party mais legível, mantendo a barra compacta e fixa à esquerda. */
.battle-party-rail {
  left:14px;
  top:78px;
  width:146px;
  justify-items:stretch;
  gap:6px;
  padding:9px;
  border-color:#416b90;
  background:
    linear-gradient(180deg,rgba(22,57,89,.98),rgba(7,22,38,.98));
  box-shadow:0 16px 38px #000b,inset 0 1px 0 #ffffff1b;
}
.party-rail-header {
  width:auto;
  min-height:20px;
  padding:0 3px 6px;
  color:#87a8c8;
  border-bottom-color:#365a7b;
  font-size:8px;
}
.party-rail-header strong {
  padding:2px 6px;
  color:#e7f3ff;
  border:1px solid #456f94;
  border-radius:4px;
  background:#0b2238;
  font-size:8px;
}
.battle-pokemon-card {
  width:100%;
  min-height:72px;
  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:center;
  gap:3px 8px;
  padding:7px;
  border-radius:7px;
  background:
    radial-gradient(circle at 23% 38%,#2d628e 0,#173f62 31%,#0b243b 73%);
}
.battle-pokemon-card img {
  grid-column:1;
  grid-row:1 / 3;
  width:54px;
  height:54px;
}
.battle-party-index {
  left:5px;
  top:5px;
}
.battle-party-hp {
  position:relative;
  z-index:2;
  left:auto;
  right:auto;
  bottom:auto;
  grid-column:2;
  grid-row:2;
  width:100%;
  height:6px;
  align-self:start;
}
.battle-pokemon-copy {
  grid-column:2;
  grid-row:1;
  min-width:0;
  display:block;
  align-self:end;
  line-height:1.05;
}
.battle-pokemon-copy strong {
  display:block;
  overflow:hidden;
  color:#f2f8ff;
  font-size:10px;
  font-weight:900;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.battle-pokemon-copy span {
  display:block;
  margin-top:3px;
  color:#8eacc8;
  font-size:7px;
  font-weight:800;
}
.battle-pokemon-copy em,
.battle-pokemon-copy p { display:none; }
.battle-party-empty {
  width:100%;
  height:34px;
  grid-template-columns:18px 20px minmax(0,1fr);
  justify-content:start;
  gap:6px;
  padding:0 8px;
  color:#587b9b;
  background:linear-gradient(180deg,#102d48,#091d31);
}
.battle-party-empty span {
  position:static;
  width:16px;
  height:16px;
  display:grid;
  place-items:center;
  color:#7697b6;
  border:1px solid #3b5f7e;
  border-radius:3px;
  background:#091b2c;
  font-size:7px;
}
.battle-party-empty i {
  width:18px;
  height:18px;
  justify-self:end;
}
.battle-party-empty:after {
  content:"SLOT VAZIO";
  grid-column:3;
  grid-row:1;
  align-self:center;
  justify-self:start;
  margin-left:0;
  color:#5d7d9b;
  font-size:7px;
  font-style:normal;
  font-weight:900;
  letter-spacing:.06em;
}
.pokemon-toggle {
  width:100%;
  height:31px;
  font-size:8px;
}

/* Skills: somente slot e ícone. Os atalhos 1–8 continuam funcionando. */
.move-button kbd { display:none!important; }
.move-button img {
  width:38px;
  height:38px;
}

@media (max-width:760px) {
  .battle-party-rail {
    left:8px;
    top:70px;
    width:132px;
    padding:7px;
  }
  .battle-pokemon-card {
    grid-template-columns:50px minmax(0,1fr);
    min-height:66px;
  }
  .battle-pokemon-card img { width:48px; height:48px; }
}

/* AJUSTE FINO DE ALINHAMENTO — v0.5.5 */
/* Centraliza geometricamente o quadro/ícone de cada skill dentro do slot. */
.move-button {
  display:flex;
  align-items:center;
  justify-content:center;
}
.move-button img {
  position:absolute;
  left:50%;
  top:50%;
  width:38px;
  height:38px;
  margin:0;
  object-position:center center;
  transform:translate(-50%,-50%);
}

/* Contraste interno do preview, recuperando a profundidade visual anterior. */
.move-skill-preview-frame {
  position:absolute;
  left:50%;
  top:50%;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  overflow:hidden;
  transform:translate(-50%,-50%);
  border:1px solid rgba(79,126,159,.52);
  border-radius:5px;
  background:
    radial-gradient(circle at 48% 42%,rgba(71,116,147,.42),rgba(13,38,57,.82) 64%),
    linear-gradient(180deg,rgba(25,62,88,.92),rgba(7,27,43,.96));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),inset 0 -5px 10px rgba(0,0,0,.18);
}
.move-button .move-skill-preview-frame .move-skill-preview,
.move-button .move-skill-preview-frame .move-skill-preview-fallback {
  position:static;
  width:38px;
  height:38px;
  margin:0;
  transform:none;
  object-fit:contain;
  object-position:center;
}
.move-skill-preview { position:absolute!important; inset:0; opacity:0; }
.move-skill-preview.is-ready { opacity:1; }
.move-skill-preview.is-ready + .move-skill-preview-fallback { visibility:hidden; }
.move-button:hover:not(:disabled) .move-skill-preview-frame {
  border-color:rgba(109,161,195,.68);
  background:
    radial-gradient(circle at 48% 42%,rgba(82,133,166,.48),rgba(15,43,64,.84) 64%),
    linear-gradient(180deg,rgba(28,69,97,.94),rgba(8,31,49,.97));
}

/* Dá mais espaço útil ao nome e o alinha mais à esquerda no card do time. */
.battle-pokemon-card {
  grid-template-columns:52px minmax(0,1fr);
  column-gap:4px;
}
.battle-pokemon-copy {
  width:calc(100% + 5px);
  margin-left:-5px;
  justify-self:start;
  text-align:left;
}
.battle-pokemon-copy strong {
  overflow:visible;
  font-size:9px;
  letter-spacing:-.015em;
  text-align:left;
  text-overflow:clip;
}
.battle-pokemon-copy span {
  text-align:left;
}

/* REDESIGN DA BARRA DE TIME — v0.5.6
   Card ativo centralizado, mais largo e alinhado ao tema azul/vermelho do jogo. */
.battle-party-rail {
  width:178px;
  gap:7px;
  padding:10px;
  border-color:#47769d;
  background:
    linear-gradient(180deg,rgba(22,58,91,.985),rgba(7,22,38,.985));
  box-shadow:0 16px 38px #000c,inset 0 1px 0 #ffffff1c;
}
.battle-party-rail:before {
  content:"";
  position:absolute;
  left:10px;
  right:10px;
  top:0;
  height:2px;
  border-radius:0 0 2px 2px;
  background:linear-gradient(90deg,#3d8bc8,#e34161);
  opacity:.9;
}
.party-rail-header {
  width:100%;
  min-height:22px;
  padding:1px 3px 7px;
  color:#91b1cf;
  font-size:8px;
}
.party-rail-header strong {
  min-width:28px;
  padding:2px 7px;
  text-align:center;
  border-color:#4c7699;
  background:#0a2137;
}
.battle-pokemon-card {
  width:100%;
  min-height:142px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:0;
  padding:10px 10px 9px;
  overflow:hidden;
  border-color:#5585ad;
  border-radius:8px;
  background:
    radial-gradient(circle at 50% 30%,#3472a2 0,#1b4d76 32%,#0c2943 72%,#081d31 100%);
  box-shadow:inset 0 1px 0 #ffffff24,0 8px 18px #0009;
}
.battle-pokemon-card:before {
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  bottom:8px;
  height:1px;
  background:linear-gradient(90deg,transparent,#ffffff12,transparent);
}
.battle-pokemon-card img {
  position:relative;
  order:1;
  grid-column:auto;
  grid-row:auto;
  width:72px;
  height:72px;
  box-sizing:border-box;
  display:block;
  margin:0 auto 4px;
  padding:3px;
  object-fit:contain;
  object-position:center;
  border:1px solid #4d789c;
  border-radius:7px;
  background:radial-gradient(circle,#173f61 0,#0b263e 74%);
  box-shadow:inset 0 1px 0 #ffffff16,0 5px 12px #0007;
  transform:none;
}
.battle-pokemon-copy {
  order:2;
  width:100%;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  margin:0;
  line-height:1;
  text-align:center;
}
.battle-pokemon-copy strong {
  width:100%;
  display:block;
  overflow:visible;
  color:#f5f9ff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.01em;
  line-height:1.1;
  text-align:center;
  text-overflow:clip;
  white-space:nowrap;
}
.battle-pokemon-copy span {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:16px;
  margin-top:5px;
  padding:2px 7px;
  color:#bcd5ec;
  border:1px solid #466f94;
  border-radius:4px;
  background:#0a2137c9;
  font-size:7px;
  font-weight:900;
  letter-spacing:.05em;
  text-align:center;
}
.battle-party-hp {
  position:relative;
  order:3;
  z-index:2;
  left:auto;
  right:auto;
  bottom:auto;
  grid-column:auto;
  grid-row:auto;
  width:88%;
  height:7px;
  align-self:center;
  margin:8px auto 0;
  overflow:hidden;
  border:1px solid #0c2438;
  border-radius:3px;
  background:#06131f;
  box-shadow:inset 0 1px 3px #000b,0 1px 0 #ffffff0d;
}
.battle-party-hp span {
  border-radius:2px;
  background:linear-gradient(90deg,#24ad63,#64df97);
  box-shadow:inset 0 1px 0 #ffffff38;
}
.battle-party-index {
  left:7px;
  top:7px;
  min-width:16px;
  height:16px;
  border-color:#5c86a8;
  background:#071827ef;
  font-size:7px;
}
.battle-pokemon-card:after {
  right:8px;
  top:8px;
  width:7px;
  height:7px;
}
.battle-party-empty {
  width:100%;
  height:38px;
  grid-template-columns:20px 22px minmax(0,1fr);
  gap:7px;
  padding:0 9px;
  border-color:#315573;
  background:linear-gradient(180deg,#102d49,#091d31);
}
.battle-party-empty span {
  width:17px;
  height:17px;
  font-size:7px;
}
.battle-party-empty i {
  width:19px;
  height:19px;
}
.battle-party-empty:after {
  color:#6989a7;
  font-size:7px;
  letter-spacing:.07em;
}
.pokemon-toggle {
  width:100%;
  height:32px;
  border-radius:6px;
  font-size:8px;
}
@media (max-width:760px) {
  .battle-party-rail {
    width:164px;
    padding:8px;
  }
  .battle-pokemon-card {
    min-height:132px;
    padding:8px;
  }
  .battle-pokemon-card img {
    width:66px;
    height:66px;
  }
}


/* HUD AZUL TRANSLÚCIDA — v0.5.7
   Transparência moderada para revelar o mapa sem perder contraste e leitura. */
.help { display:none!important; }

.game-topbar {
  border-bottom-color:rgba(73,125,170,.72);
  background:linear-gradient(180deg,rgba(18,50,81,.88),rgba(7,23,40,.84));
  box-shadow:0 10px 30px rgba(0,0,0,.52),inset 0 1px 0 rgba(255,255,255,.12);
  -webkit-backdrop-filter:blur(10px) saturate(125%);
  backdrop-filter:blur(10px) saturate(125%);
}
.game-brand {
  border-right-color:rgba(70,113,153,.62);
  background:linear-gradient(90deg,rgba(7,23,40,.72),rgba(13,42,69,.38) 72%,transparent);
}
.menu-button {
  border-color:rgba(67,108,146,.78);
  background:linear-gradient(180deg,rgba(26,67,103,.78),rgba(10,34,58,.74));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.11),0 5px 14px rgba(0,0,0,.34);
  -webkit-backdrop-filter:blur(7px) saturate(120%);
  backdrop-filter:blur(7px) saturate(120%);
}
.menu-button:hover {
  background:linear-gradient(180deg,rgba(34,84,126,.86),rgba(17,48,78,.82));
}
.menu-button.active {
  background:linear-gradient(180deg,rgba(38,77,108,.88),rgba(20,43,70,.84));
}
.menu-icon {
  background:linear-gradient(180deg,rgba(15,48,79,.72),rgba(6,25,44,.72));
}

.hud-profile,.hud-coordinate {
  border-color:rgba(67,108,145,.78);
  background:linear-gradient(180deg,rgba(20,58,91,.80),rgba(7,27,47,.78));
  box-shadow:0 9px 22px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.10);
  -webkit-backdrop-filter:blur(8px) saturate(125%);
  backdrop-filter:blur(8px) saturate(125%);
}
.hud-avatar { background:linear-gradient(180deg,rgba(26,70,108,.78),rgba(12,41,68,.76)); }

.battle-party-rail {
  border-color:rgba(74,124,166,.82);
  background:linear-gradient(180deg,rgba(20,58,91,.82),rgba(5,21,37,.84));
  box-shadow:0 16px 38px rgba(0,0,0,.56),inset 0 1px 0 rgba(255,255,255,.12);
  -webkit-backdrop-filter:blur(10px) saturate(125%);
  backdrop-filter:blur(10px) saturate(125%);
}
.battle-pokemon-card {
  background:radial-gradient(circle at 50% 30%,rgba(53,119,168,.78) 0,rgba(25,75,115,.76) 32%,rgba(8,39,65,.78) 72%,rgba(4,23,39,.80) 100%);
}
.battle-pokemon-card img {
  background:radial-gradient(circle,rgba(27,77,115,.76) 0,rgba(6,31,52,.76) 74%);
}
.battle-pokemon-copy span { background:rgba(7,31,52,.76); }
.battle-party-hp { background:rgba(3,14,24,.82); }
.battle-party-empty {
  background:linear-gradient(180deg,rgba(16,48,77,.72),rgba(5,25,43,.74));
}
.party-rail-header strong,.battle-party-empty span { background:rgba(5,27,46,.78); }

.target-card,.move-dock {
  border-color:rgba(66,108,145,.80);
  background:linear-gradient(180deg,rgba(17,52,84,.78),rgba(5,23,40,.80));
  box-shadow:0 12px 32px rgba(0,0,0,.52),inset 0 1px 0 rgba(255,255,255,.10);
  -webkit-backdrop-filter:blur(9px) saturate(120%);
  backdrop-filter:blur(9px) saturate(120%);
}
.move-button {
  border-color:rgba(65,107,143,.82);
  background:linear-gradient(180deg,rgba(22,61,95,.76),rgba(7,31,53,.78));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 6px 14px rgba(0,0,0,.38);
}
.move-button.type-fire {
  background:linear-gradient(180deg,rgba(94,43,66,.80),rgba(39,20,39,.80));
}
.move-button.type-normal {
  background:linear-gradient(180deg,rgba(53,72,91,.78),rgba(20,38,55,.80));
}
.move-cooldown { background:rgba(2,9,18,.76); }

.game-drawer {
  border-left-color:rgba(74,125,168,.82);
  background:linear-gradient(180deg,rgba(18,55,89,.89),rgba(8,31,53,.88) 34%,rgba(4,20,35,.90));
  box-shadow:-24px 0 58px rgba(0,0,0,.58),inset 1px 0 0 rgba(255,255,255,.09);
  -webkit-backdrop-filter:blur(13px) saturate(130%);
  backdrop-filter:blur(13px) saturate(130%);
}
.drawer-header { background:linear-gradient(180deg,rgba(20,59,94,.72),rgba(8,31,52,.64)); }
.drawer-summary,.friends-stats div,.party-slot,.pokemon-detail-card,.destination-card {
  background:linear-gradient(180deg,rgba(18,57,91,.70),rgba(6,29,50,.72));
  -webkit-backdrop-filter:blur(7px);
  backdrop-filter:blur(7px);
}
.inventory-slot,.filter-chip,.friend-search input,.empty-note,.empty-state,.secondary-action,.destination-state {
  background-color:rgba(6,28,48,.68);
}
.drawer-backdrop { background:rgba(2,8,15,.20); }

.game-notice {
  background:linear-gradient(180deg,rgba(16,51,82,.82),rgba(5,23,40,.84));
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
}

@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) {
  .game-topbar,.game-drawer,.battle-party-rail,.target-card,.move-dock,
  .hud-profile,.hud-coordinate,.menu-button { background-color:rgba(8,31,52,.92); }
}


/* REFINO VISUAL — v0.5.8
   - remove highlights decorativos vermelho/azul;
   - usa fundos com aproximadamente 60% de transparência;
   - centraliza os pixels visíveis do Charmander em um frame independente. */

/* Remove as linhas decorativas de highlight. */
.battle-party-rail:before,
.game-topbar:before,
.game-topbar:after {
  display:none!important;
  content:none!important;
}

/* Quadro independente: o PNG original possui transparência sobrando à esquerda. */
.battle-pokemon-sprite-frame {
  position:relative;
  order:1;
  width:72px;
  height:72px;
  display:grid;
  place-items:center;
  margin:0 auto 4px;
  overflow:hidden;
  border:1px solid rgba(99,154,198,.82);
  border-radius:7px;
  background:radial-gradient(circle,rgba(25,79,119,.42) 0,rgba(5,28,48,.40) 74%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 5px 12px rgba(0,0,0,.38);
}
.battle-pokemon-card .battle-pokemon-sprite-frame img {
  position:static!important;
  width:52px!important;
  height:52px!important;
  max-width:52px!important;
  max-height:52px!important;
  display:block!important;
  margin:0!important;
  padding:0!important;
  object-fit:contain!important;
  object-position:center center!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  filter:drop-shadow(0 4px 4px rgba(0,0,0,.62));
  transform:none!important;
}

/* Aproximadamente 60% transparente: apenas os fundos recebem alpha baixo;
   textos, sprites, barras e bordas continuam nítidos. */
.game-topbar {
  background:linear-gradient(180deg,rgba(18,50,81,.42),rgba(7,23,40,.38));
  box-shadow:0 10px 30px rgba(0,0,0,.42);
  -webkit-backdrop-filter:blur(12px) saturate(125%);
  backdrop-filter:blur(12px) saturate(125%);
}
.game-brand {
  background:linear-gradient(90deg,rgba(7,23,40,.40),rgba(13,42,69,.22) 72%,transparent);
}
.menu-button {
  background:linear-gradient(180deg,rgba(26,67,103,.42),rgba(10,34,58,.38));
  box-shadow:0 5px 14px rgba(0,0,0,.30);
}
.menu-button:hover {
  background:linear-gradient(180deg,rgba(34,84,126,.54),rgba(17,48,78,.50));
}
.menu-button.active {
  background:linear-gradient(180deg,rgba(38,77,108,.56),rgba(20,43,70,.52));
}
.menu-icon,
.exit-button {
  background:linear-gradient(180deg,rgba(15,48,79,.42),rgba(6,25,44,.40));
}
.hud-profile,.hud-coordinate {
  background:linear-gradient(180deg,rgba(20,58,91,.42),rgba(7,27,47,.40));
  box-shadow:0 9px 22px rgba(0,0,0,.36);
}
.hud-avatar {
  background:linear-gradient(180deg,rgba(26,70,108,.44),rgba(12,41,68,.40));
}
.battle-party-rail {
  background:linear-gradient(180deg,rgba(20,58,91,.42),rgba(5,21,37,.40));
  box-shadow:0 16px 38px rgba(0,0,0,.46);
  -webkit-backdrop-filter:blur(13px) saturate(125%);
  backdrop-filter:blur(13px) saturate(125%);
}
.battle-pokemon-card {
  background:radial-gradient(circle at 50% 30%,rgba(53,119,168,.44) 0,rgba(25,75,115,.42) 32%,rgba(8,39,65,.40) 72%,rgba(4,23,39,.40) 100%);
  box-shadow:0 8px 18px rgba(0,0,0,.38);
}
.battle-pokemon-copy span,
.party-rail-header strong,
.battle-party-empty span {
  background:rgba(5,27,46,.42);
}
.battle-party-hp {
  background:rgba(3,14,24,.52);
}
.battle-party-empty {
  background:linear-gradient(180deg,rgba(16,48,77,.40),rgba(5,25,43,.40));
}
.target-card,.move-dock {
  background:linear-gradient(180deg,rgba(17,52,84,.42),rgba(5,23,40,.40));
  box-shadow:0 12px 32px rgba(0,0,0,.42);
  -webkit-backdrop-filter:blur(12px) saturate(120%);
  backdrop-filter:blur(12px) saturate(120%);
}
.move-button {
  background:linear-gradient(180deg,rgba(22,61,95,.42),rgba(7,31,53,.40));
}
.move-button.type-fire {
  background:linear-gradient(180deg,rgba(94,43,66,.46),rgba(39,20,39,.42));
}
.move-button.type-normal {
  background:linear-gradient(180deg,rgba(53,72,91,.42),rgba(20,38,55,.40));
}
.move-cooldown { background:rgba(2,9,18,.52); }
.game-drawer {
  background:linear-gradient(180deg,rgba(18,55,89,.44),rgba(8,31,53,.42) 34%,rgba(4,20,35,.42));
  box-shadow:-24px 0 58px rgba(0,0,0,.48);
  -webkit-backdrop-filter:blur(15px) saturate(130%);
  backdrop-filter:blur(15px) saturate(130%);
}
.drawer-header {
  background:linear-gradient(180deg,rgba(20,59,94,.38),rgba(8,31,52,.32));
}
.drawer-summary,.friends-stats div,.party-slot,.pokemon-detail-card,.destination-card {
  background:linear-gradient(180deg,rgba(18,57,91,.40),rgba(6,29,50,.40));
}
.inventory-slot,.filter-chip,.friend-search input,.empty-note,.empty-state,.secondary-action,.destination-state {
  background-color:rgba(6,28,48,.38);
}
.drawer-backdrop { background:rgba(2,8,15,.12); }
.game-notice {
  background:linear-gradient(180deg,rgba(16,51,82,.46),rgba(5,23,40,.44));
}

@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) {
  .game-topbar,.game-drawer,.battle-party-rail,.target-card,.move-dock,
  .hud-profile,.hud-coordinate,.menu-button { background-color:rgba(8,31,52,.62); }
}


/* OPACIDADE HUD — v0.5.9
   Retorna a interface para aproximadamente 80% de opacidade, mantendo o mapa visível. */
.game-topbar {
  background:linear-gradient(180deg,rgba(18,50,81,.84),rgba(7,23,40,.80));
  box-shadow:0 10px 30px rgba(0,0,0,.50);
}
.game-brand {
  background:linear-gradient(90deg,rgba(7,23,40,.78),rgba(13,42,69,.52) 72%,transparent);
}
.menu-button {
  background:linear-gradient(180deg,rgba(26,67,103,.80),rgba(10,34,58,.78));
  box-shadow:0 5px 14px rgba(0,0,0,.34);
}
.menu-button:hover { background:linear-gradient(180deg,rgba(34,84,126,.88),rgba(17,48,78,.84)); }
.menu-button.active { background:linear-gradient(180deg,rgba(38,77,108,.90),rgba(20,43,70,.86)); }
.menu-icon,.exit-button { background:linear-gradient(180deg,rgba(15,48,79,.80),rgba(6,25,44,.78)); }
.hud-profile,.hud-coordinate {
  background:linear-gradient(180deg,rgba(20,58,91,.82),rgba(7,27,47,.80));
  box-shadow:0 9px 22px rgba(0,0,0,.44);
}
.hud-avatar { background:linear-gradient(180deg,rgba(26,70,108,.82),rgba(12,41,68,.80)); }
.battle-party-rail {
  background:linear-gradient(180deg,rgba(20,58,91,.84),rgba(5,21,37,.82));
  box-shadow:0 16px 38px rgba(0,0,0,.54);
}
.battle-pokemon-card {
  background:radial-gradient(circle at 50% 30%,rgba(53,119,168,.82) 0,rgba(25,75,115,.80) 32%,rgba(8,39,65,.80) 72%,rgba(4,23,39,.82) 100%);
  box-shadow:0 8px 18px rgba(0,0,0,.44);
}
.battle-pokemon-sprite-frame {
  background:radial-gradient(circle,rgba(25,79,119,.80) 0,rgba(5,28,48,.78) 74%);
}
.battle-pokemon-copy span,.party-rail-header strong,.battle-party-empty span { background:rgba(5,27,46,.80); }
.battle-party-hp { background:rgba(3,14,24,.86); }
.battle-party-empty { background:linear-gradient(180deg,rgba(16,48,77,.78),rgba(5,25,43,.80)); }
.target-card,.move-dock {
  background:linear-gradient(180deg,rgba(17,52,84,.82),rgba(5,23,40,.82));
  box-shadow:0 12px 32px rgba(0,0,0,.50);
}
.move-button { background:linear-gradient(180deg,rgba(22,61,95,.80),rgba(7,31,53,.80)); }
.move-button.type-fire { background:linear-gradient(180deg,rgba(94,43,66,.84),rgba(39,20,39,.82)); }
.move-button.type-normal { background:linear-gradient(180deg,rgba(53,72,91,.82),rgba(20,38,55,.82)); }
.move-cooldown { background:rgba(2,9,18,.78); }
.game-drawer {
  background:linear-gradient(180deg,rgba(18,55,89,.86),rgba(8,31,53,.84) 34%,rgba(4,20,35,.86));
  box-shadow:-24px 0 58px rgba(0,0,0,.56);
}
.drawer-header { background:linear-gradient(180deg,rgba(20,59,94,.78),rgba(8,31,52,.72)); }
.drawer-summary,.friends-stats div,.party-slot,.pokemon-detail-card,.destination-card {
  background:linear-gradient(180deg,rgba(18,57,91,.80),rgba(6,29,50,.80));
}
.inventory-slot,.filter-chip,.friend-search input,.empty-note,.empty-state,.secondary-action,.destination-state {
  background-color:rgba(6,28,48,.78);
}
.drawer-backdrop { background:rgba(2,8,15,.18); }
.game-notice { background:linear-gradient(180deg,rgba(16,51,82,.84),rgba(5,23,40,.84)); }

/* CARD DO POKÉMON ATIVO RETANGULAR — v0.6.0
   Reduz a altura e reorganiza sprite, nome, nível e HP em composição horizontal. */
.battle-pokemon-card {
  min-height:90px;
  height:90px;
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  grid-template-rows:minmax(0,1fr) 7px;
  align-items:center;
  column-gap:9px;
  row-gap:6px;
  padding:9px 10px;
}
.battle-pokemon-card:before { display:none; content:none; }
.battle-pokemon-sprite-frame {
  grid-column:1;
  grid-row:1 / 3;
  order:initial;
  width:58px;
  height:58px;
  align-self:center;
  justify-self:center;
  margin:0;
}
.battle-pokemon-card .battle-pokemon-sprite-frame img {
  width:64px!important;
  height:32px!important;
}
.battle-pokemon-copy {
  grid-column:2;
  grid-row:1;
  order:initial;
  width:100%;
  min-width:0;
  align-items:flex-start;
  justify-content:center;
  justify-self:stretch;
  margin:0;
  text-align:left;
}
.battle-pokemon-copy strong {
  width:100%;
  overflow:hidden;
  font-size:10px;
  line-height:1.15;
  text-align:left;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.battle-pokemon-copy span {
  min-height:15px;
  margin-top:5px;
  padding:2px 6px;
  align-self:flex-start;
  font-size:7px;
  text-align:left;
}
.battle-party-hp {
  grid-column:2;
  grid-row:2;
  order:initial;
  width:100%;
  height:7px;
  align-self:end;
  margin:0;
}
.battle-party-index { left:6px; top:6px; }
.battle-pokemon-card:after { right:7px; top:7px; }

@media (max-width:760px) {
  .battle-pokemon-card {
    min-height:86px;
    height:86px;
    grid-template-columns:54px minmax(0,1fr);
    padding:8px;
  }
  .battle-pokemon-sprite-frame { width:54px; height:54px; }
}

/* HUD LIMPA E SPRITE CENTRALIZADA — v0.6.1
   Remove os cards fixos de posição e alvo. O alvo continua selecionável no mapa. */
.hud-coordinate,
.target-card {
  display:none!important;
}

/* Asset próprio para a party, recortado pelos pixels visíveis da sprite. */
.battle-pokemon-card .battle-pokemon-sprite-frame img {
  position:static!important;
  width:32px!important;
  height:32px!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
  image-rendering:pixelated;
}
.battle-pokemon-sprite-frame {
  display:grid!important;
  place-items:center!important;
}

/* PERFIL DO TREINADOR + WIKI — v0.6.2
   Perfil integrado ao topo e central de conhecimento pesquisável. */
.game-topbar {
  grid-template-columns:185px 220px minmax(470px,1fr) auto;
  column-gap:10px;
  padding-right:12px;
}
.game-brand { padding:0 14px; }

.top-profile-card {
  min-width:0;
  height:58px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:7px 11px 7px 7px;
  border:1px solid rgba(70,119,160,.84);
  border-radius:8px;
  background:linear-gradient(180deg,rgba(20,59,94,.84),rgba(7,28,48,.82));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.11),0 6px 18px rgba(0,0,0,.36);
  -webkit-backdrop-filter:blur(9px) saturate(125%);
  backdrop-filter:blur(9px) saturate(125%);
}
.top-profile-avatar {
  width:44px;
  height:44px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid #4a769b;
  border-radius:7px;
  background:radial-gradient(circle at 50% 35%,#24557e,#0a2844 72%);
  box-shadow:inset 0 1px 0 #ffffff1b,0 4px 10px #0006;
}
.top-profile-avatar img {
  width:40px;
  height:40px;
  display:block;
  object-fit:contain;
  image-rendering:pixelated;
  filter:drop-shadow(0 3px 3px #0009);
}
.top-profile-content { min-width:0; flex:1; }
.top-profile-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.top-profile-heading strong {
  min-width:0;
  overflow:hidden;
  color:#f1f7ff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.025em;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.top-profile-heading span {
  flex:0 0 auto;
  padding:2px 5px;
  color:#b9d9f5;
  border:1px solid #3d678b;
  border-radius:4px;
  background:#0a2945;
  font-size:7px;
  font-weight:900;
  letter-spacing:.05em;
}
.top-profile-hp-copy { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:5px; }
.top-profile-hp-copy small { color:#7697b9; font-size:6px; font-weight:900; letter-spacing:.11em; }
.top-profile-hp-copy em { color:#a9bfd5; font-size:7px; font-style:normal; font-weight:800; white-space:nowrap; }
.top-profile-hp {
  height:6px;
  overflow:hidden;
  margin-top:3px;
  border:1px solid #0b1927;
  border-radius:3px;
  background:#030d16;
  box-shadow:inset 0 1px 3px #000b;
}
.top-profile-hp i {
  display:block;
  width:100%;
  height:100%;
  border-radius:2px;
  background:linear-gradient(90deg,#35d98a,#55e8a2);
  box-shadow:0 0 7px #34d98a80;
  transition:width .22s ease;
}

/* O perfil antigo sobre o mapa foi substituído pela barra superior. */
.hud-cluster-left,.hud-profile { display:none!important; }

.top-menu { justify-content:flex-start; gap:6px; padding:0; }
.menu-button { min-width:88px; height:56px; gap:7px; padding:6px 9px 6px 7px; }
.menu-icon { width:36px; height:36px; }
.menu-icon svg { width:28px; height:28px; }
.menu-copy strong { font-size:9px; }
.menu-copy small { margin-top:4px; font-size:7px; }
.topbar-meta { gap:12px; }
.location { min-width:145px; }
.location strong { max-width:165px; font-size:10px; }
.connection { gap:7px; }

.wiki-icon svg .icon-fill-light { fill:#eef5ff; }
.wiki-icon svg .icon-fill-blue-soft { fill:#79baff; }
.wiki-summary { margin-bottom:14px; }
.wiki-search {
  position:relative;
  display:block;
  margin:0 0 12px;
}
.wiki-search span {
  position:absolute;
  z-index:2;
  left:12px;
  top:50%;
  width:17px;
  height:17px;
  color:#82a4c5;
  transform:translateY(-50%);
}
.wiki-search svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.7; }
.wiki-search input {
  margin:0;
  padding:12px 12px 12px 39px;
  border-color:#396183;
  border-radius:7px;
  background:rgba(5,25,43,.82);
  font-size:11px;
}
.wiki-results-copy { display:flex; align-items:center; justify-content:space-between; margin:0 1px 9px; }
.wiki-results-copy span { color:#9ab2ca; font-size:8px; font-weight:700; }
.wiki-results-copy small { color:#6484a4; font-size:7px; font-weight:900; letter-spacing:.12em; }
.wiki-article-list { display:grid; gap:7px; }
.wiki-entry {
  overflow:hidden;
  border:1px solid #2f526f;
  border-radius:8px;
  background:linear-gradient(180deg,rgba(17,54,86,.82),rgba(5,27,47,.82));
  box-shadow:inset 0 1px 0 #ffffff0b;
}
.wiki-entry.hidden { display:none; }
.wiki-entry summary {
  min-height:58px;
  display:grid;
  grid-template-columns:32px minmax(0,1fr) 17px;
  align-items:center;
  gap:10px;
  padding:9px 11px;
  cursor:pointer;
  list-style:none;
}
.wiki-entry summary::-webkit-details-marker { display:none; }
.wiki-entry summary:hover { background:#163c5f66; }
.wiki-entry-icon {
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  color:#9bc9ef;
  border:1px solid #416e94;
  border-radius:6px;
  background:#0a2945;
  font-size:8px;
  font-weight:900;
}
.wiki-entry summary div { min-width:0; }
.wiki-entry summary strong { display:block; color:#edf5ff; font-size:11px; }
.wiki-entry summary small { display:block; overflow:hidden; margin-top:4px; color:#7893ad; font-size:8px; white-space:nowrap; text-overflow:ellipsis; }
.wiki-entry summary > svg { width:16px; height:16px; fill:none; stroke:#7799b9; stroke-width:2; transition:transform .18s; }
.wiki-entry[open] summary > svg { transform:rotate(90deg); }
.wiki-entry p { margin:0; padding:0 13px 13px 53px; color:#91a8bf; font-size:9px; line-height:1.55; }
.wiki-entry[open] { border-color:#4679a3; }
.wiki-empty { min-height:160px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; color:#7892ac; text-align:center; border:1px dashed #315575; border-radius:8px; background:#071b2e80; }
.wiki-empty.hidden { display:none; }
.wiki-empty strong { color:#c9d9e9; font-size:11px; }
.wiki-empty span { font-size:9px; }

@media (max-width:1260px) {
  .game-topbar { grid-template-columns:160px 195px minmax(310px,1fr) auto; column-gap:7px; }
  .game-brand { padding:0 10px; gap:8px; }
  .game-brand strong { font-size:13px; }
  .game-brand small { display:none; }
  .mini-mark { width:31px; height:31px; }
  .top-profile-card { height:54px; padding:6px; }
  .top-profile-avatar { width:40px; height:40px; }
  .top-profile-avatar img { width:37px; height:37px; }
  .top-profile-hp-copy small { display:none; }
  .menu-button { min-width:52px; width:52px; justify-content:center; padding:5px; }
  .menu-copy { display:none; }
  .menu-icon { border:0; background:transparent; box-shadow:none; }
  .location { min-width:115px; }
  .location strong { max-width:120px; }
}
@media (max-width:920px) {
  .game-topbar { grid-template-columns:190px minmax(270px,1fr) auto; }
  .game-brand { display:none; }
  .top-profile-card { margin-left:8px; }
  .location { display:none; }
  .connection div { display:none; }
}


/* PORTRAITS ORIGINAIS NA BARRA DE TIME — v0.6.3
   Usa o banco de imagens da Pokédex da base, sem alterar a sprite do mapa. */
.battle-pokemon-sprite-frame {
  overflow:hidden!important;
  padding:0!important;
}
.battle-pokemon-card .battle-pokemon-sprite-frame img {
  position:static!important;
  width:64px!important;
  height:64px!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
  image-rendering:auto!important;
  filter:drop-shadow(0 3px 4px rgba(0,0,0,.38));
}
.battle-pokemon-card .battle-pokemon-sprite-frame img.portrait-fallback {
  width:32px!important;
  height:32px!important;
  image-rendering:pixelated!important;
}

/* PORTRAIT CENTRALIZADO COM RESPIRO UNIFORME — v0.6.4
   Mantém o portrait original e cria o mesmo espaçamento nos quatro lados. */
.battle-pokemon-card .battle-pokemon-sprite-frame {
  width:60px!important;
  height:60px!important;
  padding:7px!important;
  box-sizing:border-box!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
}
.battle-pokemon-card .battle-pokemon-sprite-frame img:not(.portrait-fallback) {
  position:static!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  margin:0!important;
  padding:0!important;
  object-fit:contain!important;
  object-position:50% 50%!important;
  transform:none!important;
}
.battle-pokemon-card .battle-pokemon-sprite-frame img.portrait-fallback {
  width:32px!important;
  height:32px!important;
  margin:auto!important;
}


/* BOTÃO CENTRO POKÉMON — v0.6.5
   Retorno direto e autoritativo ao Centro Pokémon de Viridian. */
.center-menu-button {
  border-color:rgba(188,66,88,.82);
  background:linear-gradient(180deg,rgba(74,42,61,.90),rgba(34,29,48,.88));
}
.center-menu-button:hover:not(:disabled) {
  border-color:#ef6680;
  background:linear-gradient(180deg,rgba(111,48,70,.94),rgba(53,31,49,.92));
  box-shadow:inset 0 1px 0 #ffffff20,0 8px 20px #0008,0 0 14px #e6426250;
}
.center-menu-button .center-icon {
  border-color:#8f4058;
  background:linear-gradient(180deg,#7c2f4a,#421d31);
}
.center-icon svg .icon-fill-red { fill:#e84262; }
.center-icon svg .icon-fill-light { fill:#f4f8ff; }
.center-icon svg .icon-fill-blue-soft { fill:#7db8e7; }
.center-menu-button.at-center,
.center-menu-button:disabled {
  cursor:default;
  opacity:.62;
  border-color:#36526d;
  background:linear-gradient(180deg,rgba(23,57,87,.80),rgba(10,34,56,.78));
  transform:none!important;
  box-shadow:inset 0 1px 0 #ffffff12,0 5px 14px #0005;
}
.center-menu-button:disabled .center-icon {
  border-color:#41627d;
  background:linear-gradient(180deg,#244967,#17334e);
}
.center-menu-button:disabled .menu-copy small { color:#72a98f; }


/* =========================================================
   MAIN BAR — CÓPIA EXATA DO ARQUIVO main-bar_pokeidle.zip
   Valores, tamanhos e espaçamentos preservados.
   ========================================================= */
.game-shell {
    grid-template-rows: 61px minmax(0, 1fr) !important;
}

.game-topbar {
    position: relative !important;
    z-index: 20 !important;
    width: 100% !important;
    height: 61px !important;
    min-width: 0 !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: #070d14 !important;
    box-shadow: none !important;
    overflow: hidden !important;
}

.game-topbar::before,
.game-topbar::after {
    content: none !important;
    display: none !important;
}

.mainbar-compatibility {
    display: none !important;
}

.mainbar {
    position: relative;

    width: fit-content;
    min-width: 0;
    max-width: calc(100vw - 20px);
    height: 61px;

    padding: 0;
    margin: 0;

    background:
        url("assets/background.png")
        no-repeat left top;

    background-size: auto;

    user-select: none;
}

.mainbar-buttons {
    position: absolute;
    inset: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 5px;

    padding: 0 12px;
}

.mainbar-button {
    position: relative;

    width: 40px;
    height: 42px;
    flex: 0 0 40px;

    display: grid;
    place-items: center;

    padding: 0;
    margin: 0;

    border: 0;
    outline: 0;
    border-radius: 4px;

    background: transparent;

    appearance: none;
    -webkit-appearance: none;

    cursor: pointer;

    transition:
        transform 110ms ease,
        filter 120ms ease,
        background 120ms ease,
        box-shadow 120ms ease;
}

.mainbar-button::before {
    content: "";

    position: absolute;
    inset: 3px 2px;

    border: 1px solid transparent;
    border-radius: 3px;

    background:
        linear-gradient(
            180deg,
            rgba(115, 82, 27, 0) 0%,
            rgba(67, 45, 14, 0) 100%
        );

    box-shadow: none;
    opacity: 0;

    transition:
        opacity 120ms ease,
        border-color 120ms ease,
        box-shadow 120ms ease,
        background 120ms ease;

    pointer-events: none;
}

.mainbar-button img {
    position: relative;
    z-index: 1;

    display: block;

    max-width: 34px;
    max-height: 34px;

    width: auto;
    height: auto;

    object-fit: contain;
    image-rendering: auto;

    user-select: none;
    pointer-events: none;

    transition:
        transform 110ms ease,
        filter 120ms ease;
}

.gym-mainbar-icon {
    position: relative;
    z-index: 1;
    display: block;
    width: 24px;
    height: 24px;
    background: linear-gradient(145deg, #ffffff 4%, #dce5eb 34%, #8998a3 68%, #f4f7f9 100%);
    filter: drop-shadow(0 2px 2px rgba(0, 0, 0, .58)) drop-shadow(0 0 3px rgba(220, 232, 240, .25));
    -webkit-mask: url('/assets/gym-menu-icon.png') center / contain no-repeat;
    mask: url('/assets/gym-menu-icon.png') center / contain no-repeat;
    pointer-events: none;
    transition: filter 120ms ease;
}

.mainbar-button:hover,
.mainbar-button:focus-visible {
    transform: translateY(-1px);
}

.mainbar-button:hover::before,
.mainbar-button:focus-visible::before {
    opacity: 1;

    border-color: rgba(202, 157, 65, 0.72);

    background:
        linear-gradient(
            180deg,
            rgba(108, 78, 28, 0.62) 0%,
            rgba(48, 32, 11, 0.72) 100%
        );

    box-shadow:
        inset 0 1px 0 rgba(255, 239, 183, 0.12),
        0 0 7px rgba(216, 166, 66, 0.24);
}

.mainbar-button:hover img,
.mainbar-button:focus-visible img {
    filter:
        brightness(1.12)
        drop-shadow(0 0 3px rgba(255, 204, 93, 0.2));
}

.mainbar-button:hover .gym-mainbar-icon,
.mainbar-button:focus-visible .gym-mainbar-icon {
    filter: brightness(1.16) drop-shadow(0 2px 2px rgba(0, 0, 0, .58)) drop-shadow(0 0 5px rgba(225, 240, 250, .4));
}

.mainbar-button:focus-visible {
    outline: 1px solid rgba(242, 209, 134, 0.75);
    outline-offset: 1px;
}

.mainbar-button:active {
    transform: translateY(1px);
}

.mainbar-button:active::before {
    opacity: 1;

    border-color: rgba(163, 123, 48, 0.7);

    background:
        linear-gradient(
            180deg,
            rgba(42, 28, 10, 0.78) 0%,
            rgba(73, 49, 15, 0.7) 100%
        );

    box-shadow:
        inset 0 2px 4px rgba(0, 0, 0, 0.48);
}

.mainbar-button:active img {
    filter: brightness(0.96);
}

.mainbar-button:active .gym-mainbar-icon { filter: brightness(.96) drop-shadow(0 1px 1px rgba(0, 0, 0, .58)); }

.mainbar-tooltip {
    position: fixed;
    z-index: 5000;

    display: none;

    padding: 6px 8px;

    border: 1px solid #b08d45;
    border-radius: 3px;

    background: rgba(13, 18, 25, 0.97);
    color: #f2e6c3;

    box-shadow:
        0 4px 12px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);

    font-size: 11px;
    font-weight: 600;
    line-height: 13px;

    white-space: nowrap;
    pointer-events: none;
}

.mainbar-tooltip.is-visible {
    display: block;
}

@media (max-width: 1020px) {
    .game-topbar {
        justify-items: start !important;
        overflow-x: auto !important;
    }

    .mainbar {
        margin-inline: 10px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .mainbar-button,
    .mainbar-button::before,
    .mainbar-button img {
        transition: none;
    }
}

/* Inventário modal — compartilha o envelope central aprovado do Mapa, Depot e Loja NPC. */
.drawer-heading { min-width:0; display:flex; align-items:center; gap:12px; }
.inventory-header-icon,
.inventory-header-capacity { display:none; }
.game-drawer.inventory-expanded .drawer-header { flex:0 0 auto; }
.game-drawer.inventory-expanded .inventory-header-icon {
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  color:#b9d3e5;
  border:1px solid #365f79;
  border-radius:7px;
  background:#102638;
}
.game-drawer.inventory-expanded .inventory-header-icon svg {
  width:27px;
  height:27px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.55;
}
.game-drawer.inventory-expanded .inventory-header-capacity {
  display:inline-flex;
  align-items:center;
  min-height:26px;
  margin-left:8px;
  padding:0 9px;
  color:#a8c5d8;
  border:1px solid #345a73;
  border-radius:5px;
  background:#0b2131;
  font-size:8px;
  font-weight:900;
  letter-spacing:.055em;
  white-space:nowrap;
}
.inventory-view.active {
  display:flex;
  flex-direction:column;
  gap:10px;
  overflow:hidden;
  padding:14px 16px 16px;
}
.inventory-controls {
  flex:0 0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(230px,290px);
  align-items:center;
  gap:8px 12px;
  padding:10px;
  border:1px solid #2f5067;
  border-radius:8px;
  background:linear-gradient(180deg,#102535,#0a1925);
  box-shadow:inset 0 1px 0 #ffffff0b;
}
.inventory-intro { min-width:0; }
.inventory-intro p {
  margin:0;
  overflow:hidden;
  color:#91a9ba;
  font-size:9px;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.inventory-intro span {
  display:block;
  margin-top:3px;
  color:#617f94;
  font-size:7px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.inventory-search {
  position:relative;
  display:block;
  margin:0;
}
.inventory-search svg {
  position:absolute;
  z-index:2;
  left:10px;
  top:50%;
  width:15px;
  height:15px;
  fill:none;
  stroke:#7897ab;
  stroke-width:1.8;
  transform:translateY(-50%);
  pointer-events:none;
}
.inventory-search input {
  width:100%;
  height:34px;
  margin:0;
  padding:0 11px 0 34px;
  color:#e7f3fa;
  border:1px solid #345a72;
  border-radius:6px;
  outline:0;
  background:#071722;
  font-size:9px;
}
.inventory-search input::placeholder { color:#6e8799; }
.inventory-search input:focus-visible { border-color:#69a3c2; box-shadow:0 0 0 2px #4f91b329; }
.drawer-view[data-view="inventory"] .inventory-tabs {
  position:static;
  grid-column:1/-1;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:5px;
  margin:0;
  padding:0;
  background:none;
}
.drawer-view[data-view="inventory"] .inventory-tabs .filter-chip {
  min-height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:0 8px;
  color:#91a9ba;
  border:1px solid #29485c;
  border-radius:4px;
  background:#091b28;
  font-size:7px;
  transition:color .12s ease,border-color .12s ease,background-color .12s ease;
}
.drawer-view[data-view="inventory"] .inventory-tabs .filter-chip span { overflow:hidden; text-overflow:ellipsis; }
.drawer-view[data-view="inventory"] .inventory-tabs .filter-chip b {
  min-width:18px;
  padding:2px 4px;
  color:#9eb9ca;
  border:1px solid #365a70;
  border-radius:8px;
  background:#071722;
  font-size:7px;
  line-height:1;
}
.drawer-view[data-view="inventory"] .inventory-tabs .filter-chip:hover {
  color:#d9edf7;
  border-color:#39677f;
  background:#102d40;
}
.drawer-view[data-view="inventory"] .inventory-tabs .filter-chip.active,
.drawer-view[data-view="inventory"] .inventory-tabs .filter-chip[aria-selected="true"] {
  color:#e5f7ff;
  border-color:#3f82a3;
  background:#123c56;
  box-shadow:inset 0 1px 0 #ffffff12;
}
.drawer-view[data-view="inventory"] .inventory-tabs .filter-chip:focus-visible {
  outline:2px solid #69b7d2;
  outline-offset:2px;
}
.inventory-grid-shell {
  position:relative;
  flex:1 1 auto;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  padding:2px 5px 4px 2px;
  scrollbar-color:#355b77 #091621;
  scrollbar-width:thin;
}
.inventory-grid-shell::-webkit-scrollbar { width:8px; }
.inventory-grid-shell::-webkit-scrollbar-track { background:#091621; border-radius:8px; }
.inventory-grid-shell::-webkit-scrollbar-thumb { background:#355b77; border:2px solid #091621; border-radius:8px; }
.inventory-view .inventory-grid {
  grid-template-columns:repeat(8,minmax(0,1fr));
  gap:7px;
}
.inventory-view .inventory-slot {
  min-width:0;
  min-height:84px;
  aspect-ratio:1;
  border-color:#2d4d63;
  border-radius:7px;
  background:linear-gradient(145deg,#102737,#091823);
}
.inventory-view .inventory-slot:hover { border-color:#4d7891; background:#153246; }
.inventory-view .inventory-slot.has-item {
  padding:7px 6px 18px;
  cursor:default;
  border-color:#3b687f;
  background:linear-gradient(145deg,#17384c,#0b2230);
}
.inventory-view .inventory-slot.has-item img { width:48px; height:48px; filter:drop-shadow(0 4px 3px #0008); }
.inventory-view .inventory-slot[data-ditto-memory] > img { transform:translate(-21%,-25%); }
.inventory-view .inventory-slot.has-item > strong { left:6px; right:6px; bottom:6px; font-size:7px; line-height:9px; }
.inventory-view .empty-note {
  min-height:260px;
  place-content:center;
  justify-items:center;
  gap:5px;
  margin:0;
  border:1px dashed #31536a;
  border-radius:8px;
  background:#0a1a25;
  text-align:center;
}
.inventory-view .empty-note strong { color:#b4cad8; font-size:10px; }
.inventory-view .empty-note span { color:#718c9e; font-size:9px; }
@media (max-width:700px) {
  .game-drawer.inventory-expanded .inventory-header-capacity { margin-left:0; }
  .inventory-controls { grid-template-columns:1fr; }
  .inventory-search { grid-row:1; }
  .inventory-intro { grid-row:2; }
  .inventory-view .inventory-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
}
@media (max-width:520px) {
  .game-drawer.inventory-expanded .inventory-header-icon { display:none; }
  .game-drawer.inventory-expanded .inventory-header-capacity { font-size:7px; }
  .inventory-view.active { padding:10px; }
  .inventory-intro { display:none; }
  .inventory-view .inventory-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .drawer-view[data-view="inventory"] .inventory-tabs .filter-chip { padding:0 4px; }
}
@media (max-width:360px) {
  .game-drawer.inventory-expanded .inventory-header-capacity { display:none; }
  .inventory-view .inventory-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (prefers-reduced-motion:reduce) {
  .drawer-view[data-view="inventory"] .inventory-tabs .filter-chip,
  .inventory-view .inventory-slot { transition:none; }
}

.settings-hud-button {
    position: absolute;
    z-index: 8;
    top: 12px;
    right: 12px;
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 3px;
    color: #d9edf7;
    border: 1px solid rgba(75, 120, 150, .7);
    border-radius: 6px;
    background: rgba(5, 22, 36, .88);
    box-shadow: 0 7px 18px rgba(0,0,0,.36), inset 0 1px rgba(255,255,255,.06);
    cursor: pointer;
    transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease, transform 100ms ease;
}
.settings-hud-button:hover,
.settings-hud-button:focus-visible { border-color:#869aa8; background:linear-gradient(145deg,rgba(42,55,65,.96),rgba(12,27,37,.96)); box-shadow:0 8px 20px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.1),0 0 10px rgba(155,170,180,.2); }
.settings-hud-button:focus-visible { outline:2px solid #b9c5cc; outline-offset:2px; }
.settings-hud-button:active { transform:translateY(1px); }
.settings-hud-button .mainbar-svg-icon { width:34px; height:34px; }
.settings-hud-button .mainbar-svg-icon svg { width:30px; height:30px; stroke:#e2e7ea; }

/* =========================================================
   v0.6.10 — remove a faixa antiga e mantém somente a main bar
   ========================================================= */
.game-shell {
    position: relative !important;
    grid-template-rows: minmax(0, 1fr) !important;
}

.game-topbar {
    position: absolute !important;
    z-index: 40 !important;
    top: 0 !important;
    left: 50% !important;
    width: fit-content !important;
    height: 61px !important;
    min-width: 0 !important;
    max-width: calc(100vw - 20px) !important;
    padding: 0 !important;
    margin: 0 !important;
    transform: translateX(-50%) !important;
    display: block !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
    pointer-events: none !important;
}

.game-topbar::before,
.game-topbar::after {
    content: none !important;
    display: none !important;
}

.mainbar {
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
    margin: 0 !important;
    pointer-events: auto !important;
}

.mainbar-tooltip {
    pointer-events: none !important;
}

.game-stage {
    grid-row: 1 !important;
}

@media (max-width: 1019px) {
    .game-topbar {
        left: 0 !important;
        width: 100% !important;
        min-width: 0 !important;
        transform: none !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        scrollbar-width: none;
    }

    .game-topbar::-webkit-scrollbar {
        display: none;
    }

    .mainbar {
        margin-inline: auto !important;
    }
}


/* =========================================================
   v0.6.11 — posição e estados de interação da main bar
   ========================================================= */
.game-topbar {
    top: 8px !important;
}

/* O realce permanece no lugar; nenhum botão salta ao receber hover/click. */
.mainbar-button:hover,
.mainbar-button:focus,
.mainbar-button:focus-visible,
.mainbar-button:active {
    transform: none !important;
}

/* O foco do teclado não imita hover nem fica preso após usar WASD/setas. */
.mainbar-button:focus,
.mainbar-button:focus-visible {
    outline: 0 !important;
}

.mainbar-button:focus::before,
.mainbar-button:focus-visible::before {
    opacity: 0 !important;
    border-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
}

.mainbar-button:focus img,
.mainbar-button:focus-visible img {
    filter: none !important;
}

/* Só o mouse ativa o realce visual. */
.mainbar-button:hover::before {
    opacity: 1 !important;
}

.mainbar-button:hover img {
    filter: brightness(1.12) drop-shadow(0 0 3px rgba(255, 204, 93, 0.2)) !important;
}

/* =========================================================
   v0.6.12 — tooltip ancorado ao próprio botão
   ========================================================= */

/* O tooltip global antigo usava coordenadas da viewport dentro de um
   container transformado, o que deslocava o texto para o centro da barra. */
.mainbar-tooltip {
    display: none !important;
}

/* Cada botão passa a ser o próprio ponto de referência do tooltip. */
.mainbar-button {
    overflow: visible !important;
}

.mainbar-button::after {
    content: attr(data-label);

    position: absolute;
    z-index: 6000;
    top: calc(100% + 7px);
    left: 50%;

    width: max-content;
    max-width: 190px;
    padding: 6px 8px;

    border: 1px solid #b08d45;
    border-radius: 3px;

    background: rgba(13, 18, 25, 0.97);
    color: #f2e6c3;

    box-shadow:
        0 4px 12px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);

    font-family: "Barlow", sans-serif;
    font-size: 11px;
    font-weight: 600;
    line-height: 13px;
    text-align: center;
    white-space: nowrap;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transform: translateX(-50%);
    transition:
        opacity 90ms ease,
        visibility 90ms ease;
}

/* Só o mouse exibe o tooltip. Foco/click/WASD não deixam o estado preso. */
.mainbar-button:hover::after {
    opacity: 1;
    visibility: visible;
}

.mainbar-button:focus::after,
.mainbar-button:focus-visible::after,
.mainbar-button:active::after {
    opacity: 0 !important;
    visibility: hidden !important;
}

.mainbar-buttons,
.mainbar,
.game-topbar {
    overflow: visible !important;
}

@media (prefers-reduced-motion: reduce) {
    .mainbar-button::after {
        transition: none;
    }
}

/* =========================================================
   v0.6.13 — main bar compacta no mesmo tema da barra de skills
   ========================================================= */

/* Wrapper centralizado e dimensionado pelos botões realmente renderizados. */
.game-topbar {
    left: 50% !important;
    width: fit-content !important;
    min-width: 0 !important;
    max-width: calc(100vw - 20px) !important;
    height: 56px !important;
    transform: translateX(-50%) !important;
}

/* Fundo idêntico ao acabamento final da barra de skills. */
.mainbar {
    width: fit-content !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 56px !important;
    box-sizing: border-box !important;
    margin: 0 !important;

    background-image: none !important;
    background:
        linear-gradient(
            180deg,
            rgba(17, 52, 84, 0.82),
            rgba(5, 23, 40, 0.82)
        ) !important;

    border: 1px solid #3b6386 !important;
    border-radius: 8px !important;

    box-shadow:
        0 12px 32px rgba(0, 0, 0, 0.50),
        inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;

    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

/* O conteúdo participa do tamanho da barra; nenhum número de botões fica codificado. */
.mainbar-buttons {
    position: relative !important;
    inset: auto !important;
    width: max-content !important;
    height: 100% !important;
    box-sizing: border-box !important;
    justify-content: flex-start !important;
    gap: 4px !important;
    padding: 0 10px !important;
}

.mainbar-button {
    width: 38px !important;
    height: 40px !important;
    flex: 0 0 38px !important;
}

/* Os arquivos são exibidos em suas dimensões nativas.
   Nenhum transform: scale() é aplicado aos PNGs. */
.mainbar-button img {
    width: auto !important;
    height: auto !important;
    max-width: 36px !important;
    max-height: 36px !important;
    transform: none !important;
    image-rendering: auto !important;
}

/* Mantém o tooltip ancorado à nova caixa do botão. */
.mainbar-button::after {
    top: calc(100% + 7px) !important;
}

/* Responsividade sem deformar ou redimensionar os ícones. */
@media (max-width: 749px) {
    .game-topbar {
        left: 10px !important;
        width: calc(100vw - 20px) !important;
        min-width: 0 !important;
        max-width: none !important;
        transform: none !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scrollbar-width: none;
    }

    .game-topbar::-webkit-scrollbar { display: none; }

    .mainbar {
        width: fit-content !important;
        min-width: max-content !important;
        max-width: none !important;
        flex: 0 0 auto !important;
    }
}

/* =========================================================
   v0.6.14 — TEAM BAR adaptada da referência enviada
   ========================================================= */

.battle-party-rail.team-bar-ui {
    --team-width: 281px;
    --team-height: 454px;
    position: absolute !important;
    left: 12px !important;
    top: 76px !important;
    z-index: 70 !important;
    width: var(--team-width) !important;
    min-width: var(--team-width) !important;
    max-width: var(--team-width) !important;
    height: var(--team-height) !important;
    min-height: var(--team-height) !important;
    max-height: var(--team-height) !important;
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    background:
        linear-gradient(rgba(10, 28, 45, .08), rgba(10, 28, 45, .08)),
        url("/assets/teambar/background-teambar.png")
        no-repeat left top !important;
    background-size: 281px 454px !important;
    box-shadow: 0 18px 42px rgba(0, 0, 0, .46) !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    pointer-events: auto !important;
    transition: height 140ms ease !important;
}

.battle-party-rail.team-bar-ui::before {
    display: none !important;
    content: none !important;
}

.battle-party-rail.team-bar-ui::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 10 !important;
    display: block !important;
    height: 11px !important;
    background:
        url("/assets/teambar/background-teambar.png")
        no-repeat left bottom !important;
    background-size: 281px 454px !important;
    pointer-events: none !important;
}

.team-bar-header {
    position: absolute;
    inset: 0 auto auto 0;
    z-index: 20;
    width: 281px;
    height: 63px;
    padding: 0;
    cursor: grab;
    touch-action: none;
    user-select: none;
}

.team-bar-ui.is-dragging .team-bar-header { cursor: grabbing; }

.team-bar-heading {
    position: absolute;
    left: 14px;
    top: 12px;
    right: 42px;
    min-width: 0;
}

.team-bar-heading > strong {
    display: block;
    overflow: hidden;
    margin: 0;
    color: #f4e9c9;
    font-family: "Barlow", sans-serif;
    font-size: 14px;
    font-weight: 800;
    line-height: 18px;
    letter-spacing: .025em;
    white-space: nowrap;
    text-overflow: ellipsis;
    text-shadow: 0 1px 1px rgba(0, 0, 0, .72);
}

.team-bar-heading > span {
    display: flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
    margin-top: 1px;
    color: #b7c5d4;
    font-family: "Barlow", sans-serif;
    font-size: 10px;
    font-weight: 600;
    line-height: 13px;
}

.team-bar-heading em,
.team-bar-heading b {
    overflow: hidden;
    min-width: 0;
    font-style: normal;
    font-weight: 600;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.team-bar-heading i {
    flex: 0 0 auto;
    color: #b08d45;
    font-style: normal;
}

.team-bar-divider {
    position: absolute;
    left: 14px;
    top: 54px;
    width: 253px;
    height: 1px;
    background: rgba(176, 141, 69, .42);
}

.team-minimize {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 25;
    width: 18px;
    height: 18px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 2px;
    background: rgba(13, 18, 25, .34);
    color: #f2d186;
    font-family: "Barlow", sans-serif;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    opacity: .9;
    cursor: pointer;
    transition: border-color 120ms ease, background 120ms ease, opacity 120ms ease;
}

.team-minimize:hover,
.team-minimize:focus-visible {
    border-color: #b08d45;
    background: rgba(176, 141, 69, .10);
    opacity: 1;
    outline: none;
}

.team-slot-list {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    margin: 0;
    padding: 0;
}

.team-slot-item,
.battle-pokemon-card.team-slot-item,
.battle-party-empty.team-slot-item {
    position: relative !important;
    margin: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    background:
        url("/assets/teambar/slot_restantes/background_nouse.png")
        no-repeat -4px -2px !important;
    background-size: 263px 68px !important;
    color: inherit !important;
}

.battle-pokemon-card.team-slot-item {
    cursor: pointer !important;
    background-image:
        url("/assets/teambar/slot_selecionado/background_use.png") !important;
    transition: filter 120ms ease, transform 80ms ease !important;
}

.battle-pokemon-card.team-slot-item:hover { filter: brightness(1.06); }
.battle-pokemon-card.team-slot-item:active { transform: translateY(1px); }
.battle-pokemon-card.team-slot-item:focus-visible {
    outline: 1px solid rgba(229, 183, 58, .86) !important;
    outline-offset: 1px !important;
}

.battle-pokemon-card.team-slot-item.defeated {
    opacity: .55 !important;
    filter: grayscale(.48) !important;
}

.team-sprite-frame,
.battle-pokemon-card .team-sprite-frame {
    width: 48px !important;
    height: 48px !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 !important;
    padding: 4px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    background:
        url("/assets/teambar/slot_selecionado/circle_sprite.png")
        no-repeat center !important;
    background-size: 48px 48px !important;
    box-shadow: none !important;
}

.battle-pokemon-card .team-sprite-frame img,
.battle-pokemon-card .team-sprite-frame img:not(.portrait-fallback) {
    position: static !important;
    width: 40px !important;
    height: 40px !important;
    max-width: 40px !important;
    max-height: 40px !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: contain !important;
    object-position: 50% 50% !important;
    transform: none !important;
    image-rendering: auto !important;
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .45)) !important;
}

.battle-pokemon-card .team-sprite-frame img.portrait-fallback {
    width: 32px !important;
    height: 32px !important;
    image-rendering: pixelated !important;
}

.team-slot-top strong {
    flex: 1 1 auto;
    overflow: hidden;
    min-width: 0;
    color: #f2e6c3;
    font-family: "Barlow", sans-serif;
    font-size: 12px;
    font-weight: 800;
    line-height: 14px;
    text-align: left;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.team-slot-top em {
    flex: 0 0 auto;
    color: #e5b73a;
    font-family: "Barlow", sans-serif;
    font-size: 9px;
    font-style: normal;
    font-weight: 800;
    line-height: 12px;
    white-space: nowrap;
    text-shadow: 0 1px 1px rgba(0, 0, 0, .35);
}

.team-status-bar {
    position: relative;
    display: block;
    width: 100%;
    overflow: hidden;
    margin: 0;
}

.team-status-bar.hp {
    height: 10px;
    background:
        url("/assets/teambar/bars/hp_bar_empty.png")
        no-repeat center;
    background-size: 187px 10px;
}

.team-status-bar.state {
    height: 9px;
    background:
        url("/assets/teambar/bars/exp_bar_empty.png")
        no-repeat center;
    background-size: 187px 9px;
}

.team-status-bar > i {
    position: absolute;
    left: 0;
    top: 0;
    display: block;
    overflow: hidden;
    margin: 0;
    transition: width 180ms ease;
}

.team-status-bar.hp > i {
    width: 100%;
    height: 10px;
    background:
        url("/assets/teambar/bars/hp_bar_full.png")
        no-repeat left center;
    background-size: 187px 10px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.22);
}

.team-status-bar.state > i {
    width: 0;
    height: 9px;
    background:
        url("/assets/teambar/bars/exp_bar_full.png")
        no-repeat left center;
    background-size: 187px 9px;
    opacity: .78;
}

.battle-pokemon-card.defeated .team-status-bar.state > i {
    width: 100%;
    background-image: none;
    background-color: rgba(190, 50, 74, .78);
}

.team-status-bar > b {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 0 4px;
    color: #fff;
    font-family: "Barlow", sans-serif;
    font-size: 7px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .01em;
    text-align: center;
    white-space: nowrap;
    text-overflow: ellipsis;
    text-shadow:
        -1px 0 #000,
        0 1px #000,
        1px 0 #000,
        0 -1px #000;
    pointer-events: none;
}

.battle-party-index { display: none !important; }

.battle-party-empty.team-slot-item {
    opacity: 1 !important;
}

.team-empty-ball {
    position: absolute !important;
    left: 6px !important;
    top: 6px !important;
    width: 48px !important;
    height: 48px !important;
    display: block !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background:
        url("/assets/teambar/slot_restantes/circle_sprite_nouse.png")
        no-repeat center !important;
    background-size: 48px 48px !important;
}

.battle-party-empty.team-slot-item > strong {
    position: absolute;
    left: 63px;
    top: 22px;
    display: block;
    color: #71808f;
    font-family: "Barlow", sans-serif;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .055em;
}

.team-empty-index {
    position: absolute !important;
    right: 9px !important;
    top: 8px !important;
    min-width: 17px !important;
    height: 17px !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    border: 1px solid rgba(176, 141, 69, .36) !important;
    border-radius: 2px !important;
    background: rgba(10, 18, 27, .56) !important;
    color: #7e8b98 !important;
    font-family: "Barlow", sans-serif !important;
    font-size: 8px !important;
    font-weight: 800 !important;
}

.team-toggle-compat { display: none !important; }

.team-bar-ui.is-minimized {
    width: 281px !important;
    min-width: 281px !important;
    max-width: 281px !important;
    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
    background:
        url("/assets/teambar/background-teambar_minimizado.png")
        no-repeat left top !important;
    background-size: 281px 54px !important;
}

.team-bar-ui.is-minimized::after,
.team-bar-ui.is-minimized .team-bar-divider,
.team-bar-ui.is-minimized .team-slot-list {
    display: none !important;
}

.team-bar-ui.is-minimized .team-bar-header { height: 54px; }
.team-bar-ui.is-minimized .team-bar-heading { left: 12px; top: 10px; }
.team-bar-ui.is-minimized .team-minimize { top: 12px; right: 12px; }

@media (max-width: 720px) {
    .battle-party-rail.team-bar-ui {
        left: 8px !important;
        top: 72px !important;
    }
}

@media (max-height: 560px) {
    .battle-party-rail.team-bar-ui:not(.is-minimized) {
        max-height: calc(100% - 84px) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }
}

/* =========================================================
   v0.6.15 — TEAM BAR azul translúcida e corrigida
   Mantém a estrutura da referência, sem os backgrounds dourados.
   ========================================================= */

.battle-party-rail.team-bar-ui {
    --team-width: 281px;
    --team-height: 446px;

    width: var(--team-width) !important;
    min-width: var(--team-width) !important;
    max-width: var(--team-width) !important;
    height: var(--team-height) !important;
    min-height: var(--team-height) !important;
    max-height: var(--team-height) !important;

    overflow: hidden !important;
    border: 1px solid #3b6386 !important;
    border-radius: 8px !important;

    background-image: none !important;
    background:
        linear-gradient(
            180deg,
            rgba(17, 52, 84, 0.82),
            rgba(5, 23, 40, 0.82)
        ) !important;

    box-shadow:
        0 14px 34px rgba(0, 0, 0, 0.48),
        inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;

    -webkit-backdrop-filter: blur(6px) !important;
    backdrop-filter: blur(6px) !important;
}

.battle-party-rail.team-bar-ui::before,
.battle-party-rail.team-bar-ui::after {
    display: none !important;
    content: none !important;
}

/* Cabeçalho */
.team-bar-header {
    width: 100% !important;
    height: 62px !important;
    border-bottom: 1px solid rgba(75, 119, 156, 0.58);
    background:
        linear-gradient(
            180deg,
            rgba(21, 65, 101, 0.44),
            rgba(7, 30, 51, 0.18)
        ) !important;
}

.team-bar-heading {
    left: 13px !important;
    top: 11px !important;
    right: 47px !important;
}

.team-bar-heading > strong {
    color: #edf6ff !important;
    font-size: 14px !important;
    line-height: 18px !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.72) !important;
}

.team-bar-heading > span {
    margin-top: 2px !important;
    color: #9ab8d2 !important;
    font-size: 9px !important;
    line-height: 12px !important;
}

.team-bar-heading i {
    color: #5f8fb6 !important;
}

.team-bar-divider {
    display: none !important;
}

.team-minimize {
    top: 16px !important;
    right: 13px !important;
    width: 24px !important;
    height: 24px !important;

    border: 1px solid #3d678b !important;
    border-radius: 5px !important;
    background: rgba(5, 25, 43, 0.72) !important;
    color: #b9d9f5 !important;

    font-size: 14px !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
}

.team-minimize:hover,
.team-minimize:focus-visible {
    border-color: #69a3cf !important;
    background: rgba(20, 62, 96, 0.82) !important;
    color: #ffffff !important;
}

/* Cards sem imagens de fundo, evitando textos e ornamentos sobrepostos */
.team-slot-item,
.battle-pokemon-card.team-slot-item,
.battle-party-empty.team-slot-item {
    overflow: hidden !important;
    border: 1px solid #2e526f !important;
    border-radius: 6px !important;

    background-image: none !important;
    background:
        linear-gradient(
            180deg,
            rgba(11, 43, 69, 0.76),
            rgba(4, 23, 40, 0.76)
        ) !important;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.045),
        0 2px 7px rgba(0, 0, 0, 0.18) !important;
}

.battle-pokemon-card.team-slot-item {
    border-color: #4f83aa !important;
    background:
        linear-gradient(
            180deg,
            rgba(18, 63, 98, 0.88),
            rgba(5, 29, 50, 0.88)
        ) !important;
}

.battle-pokemon-card.team-slot-item:hover {
    border-color: #6da6d1 !important;
    filter: brightness(1.045) !important;
}

.battle-pokemon-card.team-slot-item:focus-visible {
    outline: 1px solid #79b7e2 !important;
    outline-offset: 1px !important;
}

/* Portrait */
.team-sprite-frame,
.battle-pokemon-card .team-sprite-frame {
    width: 48px !important;
    height: 48px !important;
    padding: 4px !important;

    overflow: hidden !important;
    border: 1px solid #416f93 !important;
    border-radius: 50% !important;

    background-image: none !important;
    background:
        radial-gradient(
            circle at 48% 42%,
            rgba(32, 85, 124, 0.94),
            rgba(4, 22, 38, 0.96) 72%
        ) !important;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 2px 6px rgba(0, 0, 0, 0.32) !important;
}

.battle-pokemon-card .team-sprite-frame img,
.battle-pokemon-card .team-sprite-frame img:not(.portrait-fallback) {
    width: 40px !important;
    height: 40px !important;
    max-width: 40px !important;
    max-height: 40px !important;
    object-fit: contain !important;
    object-position: 50% 50% !important;
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.42)) !important;
}

/* Nome e nível */
.team-slot-top strong {
    color: #edf6ff !important;
    font-size: 11px !important;
    line-height: 14px !important;
}

.team-slot-top em {
    padding: 2px 5px !important;
    border: 1px solid #3c688b !important;
    border-radius: 4px !important;
    background: rgba(4, 25, 43, 0.78) !important;
    color: #b9d9f5 !important;

    font-size: 7px !important;
    line-height: 9px !important;
    text-shadow: none !important;
}

/* HP e status */
.team-status-bar {
    border: 1px solid rgba(4, 14, 24, 0.92) !important;
    border-radius: 3px !important;
    background-image: none !important;
    background-color: rgba(2, 13, 23, 0.92) !important;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.72) !important;
}

.team-status-bar.hp {
    height: 9px !important;
}

.team-status-bar.state {
    height: 9px !important;
}

.team-status-bar > i {
    border-radius: 2px !important;
    background-image: none !important;
}

.team-status-bar.hp > i {
    height: 100% !important;
    background:
        linear-gradient(90deg, #35d98a, #55e8a2) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.24),
        0 0 6px rgba(53, 217, 138, 0.32) !important;
}

.team-status-bar.state > i {
    height: 100% !important;
    background:
        linear-gradient(90deg, #3e83b9, #69aee0) !important;
    opacity: 0.88 !important;
}

.battle-pokemon-card.defeated .team-status-bar.state > i {
    background:
        linear-gradient(90deg, #af304b, #dc4562) !important;
}

.team-status-bar > b {
    padding: 0 3px !important;
    color: #f6fbff !important;
    font-size: 7px !important;
    line-height: 9px !important;
    letter-spacing: 0 !important;
    text-shadow: 0 1px 2px #000 !important;
}

/* Slots vazios */
.battle-party-empty.team-slot-item {
    opacity: 1 !important;
    background:
        linear-gradient(
            180deg,
            rgba(8, 32, 53, 0.66),
            rgba(3, 18, 32, 0.66)
        ) !important;
}

.team-empty-ball {
    left: 7px !important;
    top: 5px !important;
    width: 48px !important;
    height: 48px !important;

    border: 1px solid #294a65 !important;
    border-radius: 50% !important;

    background-image: none !important;
    background:
        radial-gradient(
            circle at 50% 45%,
            rgba(27, 60, 86, 0.52),
            rgba(3, 17, 30, 0.84) 72%
        ) !important;

    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035) !important;
}

.team-empty-ball::before {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 20px !important;
    height: 20px !important;
    border: 2px solid #355b79 !important;
    border-radius: 50% !important;
    transform: translate(-50%, -50%) !important;
    opacity: 0.58 !important;
}

.team-empty-ball::after {
    content: "" !important;
    position: absolute !important;
    left: 8px !important;
    right: 8px !important;
    top: 23px !important;
    height: 2px !important;
    background: #355b79 !important;
    opacity: 0.58 !important;
}

.battle-party-empty.team-slot-item > strong {
    left: 65px !important;
    top: 21px !important;
    color: #7896b0 !important;
    font-size: 9px !important;
    line-height: 13px !important;
    letter-spacing: 0.055em !important;
}

.team-empty-index {
    right: 8px !important;
    top: 8px !important;
    min-width: 18px !important;
    height: 18px !important;

    border: 1px solid #315777 !important;
    border-radius: 4px !important;
    background: rgba(4, 22, 38, 0.72) !important;
    color: #7596b3 !important;
}

/* Minimizada no mesmo tema */
.team-bar-ui.is-minimized {
    width: 281px !important;
    min-width: 281px !important;
    max-width: 281px !important;
    height: 60px !important;
    min-height: 60px !important;
    max-height: 60px !important;

    border: 1px solid #3b6386 !important;
    border-radius: 8px !important;
    background-image: none !important;
    background:
        linear-gradient(
            180deg,
            rgba(17, 52, 84, 0.82),
            rgba(5, 23, 40, 0.82)
        ) !important;
}

.team-bar-ui.is-minimized .team-bar-header {
    height: 60px !important;
    border-bottom: 0 !important;
}

.team-bar-ui.is-minimized .team-bar-heading {
    left: 11px !important;
    top: 50% !important;
    right: 48px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    transform: translateY(-50%) !important;
}

.team-bar-ui.is-minimized .team-bar-heading > span {
    margin-top: 0 !important;
}

.team-bar-ui.is-minimized .team-minimize {
    top: 50% !important;
    right: 10px !important;
    transform: translateY(-50%) !important;
}

/* =========================================================
   v0.6.16 — limpeza visual da Team Bar
   ========================================================= */

/* Remove o segundo "SLOT VAZIO" criado por uma regra antiga. */
.battle-party-empty::after,
.battle-party-empty.team-slot-item::after {
    display: none !important;
    content: none !important;
}

/* Remove a numeração 2, 3, 4, 5 e 6 dos slots vazios. */
.team-empty-index {
    display: none !important;
}

/* Mantém apenas o círculo vazio, sem o desenho interno semelhante a uma bola/ovo. */
.team-empty-ball::before,
.team-empty-ball::after {
    display: none !important;
    content: none !important;
}

/* Remove a bolinha indicadora no canto superior direito do Pokémon selecionado. */
.battle-pokemon-card::after,
.battle-pokemon-card.summoned::after,
.battle-pokemon-card.defeated::after {
    display: none !important;
    content: none !important;
}

/* Ajuste fino do texto único restante nos slots vazios. */
/* v0.6.17 — espaçamento inferior simétrico da Team Bar */
.battle-party-rail.team-bar-ui:not(.is-minimized) {
    --team-height: 449px !important;
    height: 449px !important;
    min-height: 449px !important;
    max-height: 449px !important;
}


/* Outfits v0.6.18 */
.gender-picker{border:0;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.gender-picker legend{font-size:10px;font-weight:800;letter-spacing:.13em;color:#8ea1bd;margin-bottom:8px}.gender-picker label{display:block;cursor:pointer}.gender-picker input{position:absolute;opacity:0;pointer-events:none}.gender-picker span{height:74px;border:1px solid #26354b;border-radius:8px;background:linear-gradient(180deg,#172236,#0c1422);display:flex;align-items:center;justify-content:center;gap:10px;color:#aebbd0;transition:.15s}.gender-picker img{width:40px;height:40px;image-rendering:pixelated;object-fit:contain}.gender-picker b{font-size:12px}.gender-picker input:checked+span{border-color:#50a7e8;background:linear-gradient(180deg,#1c3854,#10233a);box-shadow:0 0 0 1px #50a7e844 inset,0 8px 24px #0007;color:#eef8ff}
.player-context-menu{position:fixed;z-index:3500;width:196px;padding:5px;border:1px solid #36526f;border-radius:7px;background:linear-gradient(180deg,rgba(26,43,62,.98),rgba(10,19,30,.98));box-shadow:0 14px 38px #000b,0 1px 0 #ffffff17 inset;backdrop-filter:blur(8px)}.player-context-menu.hidden{display:none}.player-context-menu button{width:100%;height:48px;border:0;border-radius:5px;background:transparent;color:#eaf5ff;display:flex;align-items:center;gap:10px;text-align:left;padding:7px 9px;cursor:pointer}.player-context-menu button:hover{background:linear-gradient(180deg,#2a587c,#173b58)}.player-context-menu button>span:last-child{display:flex;flex-direction:column;gap:2px}.player-context-menu strong{font-size:12px}.player-context-menu small{font-size:9px;color:#8fa8bf}.context-outfit-icon{width:28px;height:28px;border-radius:5px;display:grid;place-items:center;background:#173d5a;border:1px solid #39739b;color:#75c7ff;font-size:12px}
.outfit-overlay{position:fixed;inset:0;z-index:3400;display:grid;place-items:center;padding:24px;background:rgba(3,8,14,.7);backdrop-filter:blur(4px)}.outfit-overlay.hidden{display:none}.outfit-window{width:min(620px,calc(100vw - 32px));border:1px solid #365773;border-radius:10px;background:linear-gradient(180deg,#17283b 0,#0d1826 34%,#09121d 100%);box-shadow:0 28px 80px #000d,0 1px 0 #ffffff1f inset;overflow:hidden}.outfit-header{height:68px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #28445e;background:linear-gradient(180deg,rgba(39,72,101,.78),rgba(18,39,58,.5))}.outfit-header small,.outfit-current small{display:block;font-size:9px;font-weight:800;letter-spacing:.16em;color:#69b9ef}.outfit-header h2{margin:3px 0 0;font-size:21px;color:#f1f7ff}.outfit-header button{width:32px;height:32px;border:1px solid #365873;border-radius:6px;background:#10243a;color:#bcd3e8;display:grid;place-items:center;cursor:pointer}.outfit-header button:hover{background:#193b58;color:#fff}.outfit-header svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}

.team-bar-heading > small {
  display: block;
  width: 100%;
  margin-top: 1px;
  overflow: hidden;
  color: #7894ac;
  font-size: 7px;
  line-height: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.team-trainer-exp-track {
  display: block;
  width: 100%;
  height: 8px;
  min-height: 8px;
  max-height: 8px;
  flex: 0 0 8px;
  margin-top: 2px;
  box-sizing: border-box;
  overflow: hidden;
  border-radius: 4px;
  background: #07111c;
  animation: none;
  box-shadow: none;
  filter: none;
  transform: none;
}
.team-trainer-exp-track::before,
.team-trainer-exp-track::after {
  display: none;
  content: none;
}
.team-trainer-exp-track > span {
  display: block;
  width: 0;
  min-height: 100%;
  max-height: 100%;
  height: 100%;
  box-sizing: border-box;
  border-radius: inherit;
  background: #48b7e8;
  animation: none;
  box-shadow: none;
  transition: none;
}
.battle-party-rail.team-bar-ui.is-minimized {
  height: 68px !important;
  min-height: 68px !important;
  max-height: 68px !important;
  padding: 0 !important;
}
.battle-party-rail.team-bar-ui.is-minimized .team-bar-header {
  height: 68px !important;
}
.player-context-menu button.hidden{display:none}.context-duel-icon{width:28px;height:28px;border-radius:5px;display:grid;place-items:center;background:#3c2030;border:1px solid #99506e;color:#ff9dbe;font-size:13px}
.pvp-overlay{position:fixed;inset:0;z-index:3600;display:grid;place-items:center;padding:20px;background:#020812b8}.pvp-overlay.hidden,.pvp-panel.hidden{display:none}.pvp-invite-card{width:min(390px,calc(100vw - 32px));padding:22px;border:1px solid #466884;border-radius:10px;background:linear-gradient(180deg,#172b40,#091521);box-shadow:0 24px 70px #000c;color:#eaf5ff;text-align:center}.pvp-invite-card>small,.pvp-panel header small{font-size:9px;font-weight:900;letter-spacing:.18em;color:#6dc9f5}.pvp-invite-card h2{margin:5px 0 8px;font-size:20px}.pvp-invite-card p{margin:0;color:#a9bfd2;font-size:12px}.pvp-invite-card>strong{display:block;margin:12px 0;color:#fff;font-size:15px}.pvp-invite-card footer{display:flex;justify-content:center;gap:8px}.pvp-invite-card button,.pvp-panel button{min-height:32px;padding:0 14px;border:1px solid #3c607b;border-radius:6px;background:#10283c;color:#dcefff;font:800 10px/1 inherit;cursor:pointer}.pvp-invite-card button:last-child{border-color:#3288b6;background:#16608a}.pvp-invite-card button:hover,.pvp-panel button:hover{filter:brightness(1.14)}
.pvp-panel{position:absolute;top:74px;left:50%;z-index:900;width:min(360px,calc(100vw - 28px));transform:translateX(-50%);border:1px solid #3d617d;border-radius:9px;background:linear-gradient(180deg,#152a3d,#091522);box-shadow:0 16px 40px #000a;color:#eaf6ff;overflow:hidden}.pvp-panel header{height:46px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #29465e}.pvp-panel header div{display:flex;flex-direction:column;gap:2px}.pvp-panel header strong{font-size:12px}.pvp-panel button{min-height:26px;color:#ffb7c9;border-color:#754356;background:#2a1620}.pvp-panel .pvp-surrender-button{min-width:76px;min-height:29px;padding:0 12px;border-color:#754356;border-radius:6px;background:#2a1620;color:#ffb7c9;font-family:inherit;font-size:9px;font-weight:800;letter-spacing:.02em;box-shadow:none;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.pvp-panel .pvp-surrender-button:hover{border-color:#a55a72;background:#3a1c29;color:#ffe1e8;filter:none}.pvp-panel .pvp-surrender-button:focus-visible{outline:2px solid #ff91ad66;outline-offset:2px}.pvp-opponent{display:flex;align-items:center;gap:10px;padding:10px 12px}.pvp-opponent>img{width:56px;height:56px;object-fit:contain;image-rendering:pixelated}.pvp-opponent>div{display:grid;grid-template-columns:1fr auto;gap:3px 8px;min-width:0;flex:1}.pvp-opponent strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pvp-opponent span,.pvp-opponent small{font-size:9px;color:#91a9bc}.pvp-opponent i{grid-column:1/-1;height:5px;border-radius:4px;background:#050c13;overflow:hidden}.pvp-opponent i>b{display:block;height:100%;background:#42d99a}.pvp-opponent small{grid-column:1/-1}
.pvp-roster-status{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;margin-top:2px}.pvp-roster-status>span{display:flex;align-items:center;gap:5px;min-width:0}.pvp-roster-status>span>b{max-width:74px;color:#7895aa;font-size:7px;font-weight:900;letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pvp-ball-strip{display:inline-flex;align-items:center;gap:2px;flex:0 0 auto}.pvp-ball-strip img{display:block;width:14px;height:14px;object-fit:contain;image-rendering:pixelated}.pvp-ball-strip img.is-active{opacity:1;filter:none}.pvp-ball-strip img.is-defeated{opacity:.28;filter:grayscale(1) brightness(.55)}
.pvp-challenge-card{width:min(404px,calc(100vw - 32px));padding:18px 20px 16px;display:flex;flex-direction:column;align-items:center}.pvp-challenge-card>small{line-height:1.2}.pvp-challenge-card h2{margin:4px 0 5px;line-height:1.2}.pvp-challenge-card>p{line-height:1.35}.pvp-format-options{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:13px 0 12px}.pvp-format-options button,.pvp-format-options button:last-child{min-width:0;min-height:54px;padding:7px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid #31536d;border-radius:6px;background:#0c2132;color:#eaf7ff;font-family:inherit;font-size:15px;font-weight:900;line-height:1;white-space:nowrap;box-shadow:0 1px 0 #ffffff0a inset;transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease,color .14s ease}.pvp-format-options button:hover{border-color:#497894;background:#102b40;color:#fff;filter:none}.pvp-format-options button:focus-visible,.pvp-format-options button[aria-pressed="true"],.pvp-format-options button.selected{border-color:#55b7df;background:#13344a;color:#fff;box-shadow:0 0 0 1px #55b7df2e inset,0 0 12px #2b9ac221;outline:2px solid #63bfea55;outline-offset:2px}.pvp-format-options small{color:#83a6bf;font-family:inherit;font-size:7px;font-weight:800;line-height:1;letter-spacing:.08em;text-transform:uppercase}.pvp-challenge-card footer{width:100%;margin:0;justify-content:center}.pvp-challenge-card #pvp-challenge-cancel,.pvp-challenge-card #pvp-challenge-cancel:last-child{min-width:92px;min-height:29px;padding:0 13px;border-color:#35546b;background:#0d1e2c;color:#aFC4d5;font-family:inherit;font-size:9px;font-weight:800;letter-spacing:.04em;box-shadow:none}.pvp-challenge-card #pvp-challenge-cancel:hover{border-color:#4d718a;background:#132a3b;color:#e5f2fb;filter:none}.pvp-challenge-card #pvp-challenge-cancel:focus-visible{outline:2px solid #63bfea66;outline-offset:2px}.pvp-countdown{position:fixed;inset:0;z-index:3550;display:grid;place-content:center;pointer-events:none;text-align:center;background:#02081235}.pvp-countdown.hidden{display:none}.pvp-countdown small{color:#b9d8eb;font-size:10px;font-weight:900;letter-spacing:.2em;text-shadow:0 2px 8px #000}.pvp-countdown strong{margin-top:4px;color:#eaf8ff;font-size:64px;line-height:1;text-shadow:0 0 24px #55bdec88,0 4px 12px #000}.pvp-panel #pvp-format-status{color:#72c8ef}
.pvp-countdown.result{background:#02081252}.pvp-countdown.result small:empty{display:none}.pvp-countdown.result strong{font-size:52px;animation:pvp-result-in .34s ease-out both}.pvp-countdown.result-victory strong{color:#74e6a8;text-shadow:0 0 25px #35c87b80,0 4px 12px #000}.pvp-countdown.result-defeat strong{color:#ff7185;text-shadow:0 0 25px #df385580,0 4px 12px #000}.pvp-countdown.result-neutral strong{color:#d7e7f2;text-shadow:0 0 20px #6fa7c766,0 4px 12px #000}@keyframes pvp-result-in{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.pvp-countdown.result strong{animation:none}}
.game-notice{z-index:3700}
.game-notice.pvp{position:fixed;top:auto!important;bottom:120px!important}
@media (max-width:760px){.game-notice.pvp{bottom:164px!important;max-width:calc(100vw - 28px)}}
@media(max-width:700px){.pvp-panel{top:60px}.pvp-invite-card{padding:18px}}
@media(max-width:380px){.pvp-challenge-card{padding:16px 14px 14px}.pvp-format-options{gap:5px}.pvp-format-options button,.pvp-format-options button:last-child{min-height:52px;padding-inline:5px}}
.pvp-request-card{width:min(404px,calc(100vw - 32px));padding:18px 20px 17px;display:flex;flex-direction:column;align-items:center}.pvp-request-card>small{line-height:1.2}.pvp-request-card h2{margin:4px 0 5px;line-height:1.2}.pvp-request-card .pvp-invite-players{max-width:100%;color:#9fb7ca;font-size:10px;font-weight:600;line-height:1.35;white-space:normal}.pvp-invite-meta{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:12px 0 9px}.pvp-invite-meta>span{min-height:48px;padding:7px 9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid #31536d;border-radius:6px;background:#0c2132;box-shadow:0 1px 0 #ffffff0a inset}.pvp-invite-meta b{color:#edf8ff;font-family:inherit;font-size:14px;font-weight:900;line-height:1}.pvp-invite-meta small,.pvp-invite-expiry>small{color:#789ab3;font-size:7px;font-weight:800;line-height:1;letter-spacing:.08em}.pvp-invite-expiry{display:flex;align-items:center;justify-content:center;gap:7px;margin:0 0 11px}.pvp-invite-card .pvp-invite-expiry>strong{display:block;margin:0;color:#dcefff;font-size:12px;font-weight:900;line-height:1}.pvp-request-card footer{width:100%;gap:7px}.pvp-request-card footer button,.pvp-request-card footer button:last-child{min-width:98px;min-height:30px;padding:0 14px;border-radius:6px;font-family:inherit;font-size:9px;font-weight:800;letter-spacing:.02em;box-shadow:none;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.pvp-request-card .pvp-invite-secondary,.pvp-request-card .pvp-invite-secondary:last-child{border-color:#35546b;background:#0d1e2c;color:#afc4d5}.pvp-request-card .pvp-invite-secondary:hover{border-color:#4d718a;background:#132a3b;color:#e5f2fb;filter:none}.pvp-request-card .pvp-invite-primary,.pvp-request-card .pvp-invite-primary:last-child{border-color:#438db2;background:#155273;color:#f1fbff}.pvp-request-card .pvp-invite-primary:hover{border-color:#61b7dc;background:#1a668d;filter:none}.pvp-request-card footer button:focus-visible{outline:2px solid #63bfea66;outline-offset:2px}@media(max-width:380px){.pvp-request-card{padding:16px 14px 14px}.pvp-invite-meta{gap:5px}.pvp-request-card footer button{min-width:92px}}
.outfit-current{margin:16px 16px 12px;padding:12px;border:1px solid #294865;border-radius:8px;background:linear-gradient(180deg,rgba(30,63,90,.72),rgba(14,30,46,.82));display:flex;align-items:center;gap:14px}.outfit-preview-frame{width:70px;height:70px;border:1px solid #3c6787;border-radius:7px;background:radial-gradient(circle at 50% 35%,#254c69,#0c1724 70%);display:grid;place-items:center;box-shadow:0 1px 0 #ffffff17 inset}.outfit-preview-frame img{width:58px;height:58px;object-fit:contain;image-rendering:pixelated}.outfit-current strong{display:block;margin-top:4px;font-size:16px;color:#f3f8ff}.outfit-current span{display:block;margin-top:3px;font-size:10px;color:#8ea5ba}
.outfit-grid{padding:0 16px 16px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.outfit-card{position:relative;min-width:0;height:142px;padding:9px;border:1px solid #253c52;border-radius:8px;background:linear-gradient(180deg,#142438,#0a1421);color:#c7d6e5;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:7px;cursor:pointer;transition:.15s}.outfit-card:hover{transform:translateY(-2px);border-color:#47799c;background:linear-gradient(180deg,#1b3450,#0d1d2e)}.outfit-card.selected{border-color:#5dbcf4;box-shadow:0 0 0 1px #5dbcf44d inset,0 8px 24px #0007;background:linear-gradient(180deg,#214c6c,#102840)}.outfit-card.equipped:after{content:'✓';position:absolute;top:7px;right:7px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#42b979;color:#07170f;font-size:11px;font-weight:900}.outfit-card-sprite{width:68px;height:68px;border-radius:6px;display:grid;place-items:center;background:radial-gradient(circle,#213f58,#0b1420 72%);border:1px solid #29455d}.outfit-card-sprite img{width:56px;height:56px;object-fit:contain;image-rendering:pixelated}.outfit-card-copy{display:flex;flex-direction:column;align-items:center;min-width:0}.outfit-card-copy strong{max-width:100%;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.outfit-card-copy small{margin-top:2px;font-size:9px;color:#7890a6}.outfit-card i{height:12px;font-size:8px;font-style:normal;font-weight:900;letter-spacing:.12em;color:#66d59c}.outfit-footer{height:66px;padding:0 16px;border-top:1px solid #243d54;background:#0b1522;display:flex;align-items:center;justify-content:flex-end;gap:9px}.outfit-footer button{min-width:126px}.outfit-footer .primary:disabled{opacity:.45;cursor:default;filter:saturate(.4)}
@media(max-width:640px){.outfit-grid{grid-template-columns:repeat(2,1fr)}.outfit-window{max-height:calc(100vh - 24px);overflow:auto}.outfit-card{height:132px}}

/* v0.6.26 — Inventário real, time de teste e seleção de hunts */
.inventory-slot.has-item {
  display:flex;
  align-items:center;
  justify-content:center;
  padding:5px;
  cursor:default;
  border-color:#4f7fa5;
  background:linear-gradient(145deg,#183b58,#0b2237);
}
.inventory-slot.has-item:before { border-style:solid; border-color:#487497; opacity:.55; }
.inventory-slot.has-item img {
  position:relative;
  z-index:1;
  width:42px;
  height:42px;
  object-fit:contain;
  image-rendering:pixelated;
  filter:drop-shadow(0 4px 3px #0009);
}
.inventory-slot.has-item > strong {
  position:absolute;
  z-index:2;
  left:4px;
  right:4px;
  bottom:4px;
  overflow:hidden;
  color:#d9e9f7;
  font-size:7px;
  line-height:9px;
  text-align:center;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-shadow:0 1px 2px #000;
}
.inventory-slot .inventory-count {
  position:absolute;
  z-index:3;
  right:3px;
  top:3px;
  min-width:18px;
  padding:1px 4px;
  border:1px solid #7099ba;
  border-radius:8px;
  color:#fff;
  background:#102b42e8;
  font-size:8px;
  font-style:normal;
  font-weight:900;
  text-align:center;
}
.inventory-slot .inventory-auto {
  position:absolute;
  z-index:3;
  left:3px;
  top:3px;
  padding:1px 3px;
  border:1px solid #287d59;
  border-radius:3px;
  color:#83f0b7;
  background:#0a3325e8;
  font-size:6px;
  font-style:normal;
  font-weight:900;
}
.inventory-slot.has-item > span:not(.animated-item-visual) { display:none; }
.destination-card {
  width:100%;
  padding:0;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.destination-card:disabled { cursor:default; opacity:1; }
.destination-card.selected {
  border-color:#75a6cf;
  box-shadow:inset 3px 0 0 #75a6cf,0 0 0 1px #75a6cf28,0 9px 24px #0005;
}
.destination-card.selected .destination-state {
  color:#b9dcf6;
  border-color:#477a9f;
  background:#102f49;
}
.rattata-art {
  background:
    radial-gradient(circle at 68% 38%,#cfb071 0 2px,transparent 3px),
    linear-gradient(145deg,#4f6e3c,#223b28 54%,#16281c);
}
.rattata-art:before {
  content:"";
  position:absolute;
  right:16px;
  bottom:9px;
  width:64px;
  height:64px;
  background:url('/game-data/assets/creature-spawn-rattata-2-0.png') center/contain no-repeat;
  image-rendering:pixelated;
  filter:drop-shadow(0 6px 4px #0008);
}
.team-slot-inactive { opacity:.9; cursor:pointer; }
.team-slot-inactive:after { display:none; }
.party-slot.secondary { opacity:.9; }
.party-slot.secondary .party-sprite-wrap img { image-rendering:pixelated; }

/* AUTO-HELPER — v0.6.43 */
.auto-helper-overlay {
  position:fixed;
  z-index:65;
  inset:0;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(2,8,15,.55);
  backdrop-filter:blur(3px);
}
.auto-helper-overlay.hidden { display:none; }
.auto-helper-window {
  width:min(350px,calc(100vw - 28px));
  max-height:min(780px,calc(100vh - 32px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #31516c;
  border-radius:10px;
  background:linear-gradient(180deg,#10243a,#091724 72%,#07131f);
  box-shadow:0 28px 80px #000d,inset 0 1px 0 #ffffff13;
}
.auto-helper-header {
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 12px 10px 15px;
  border-bottom:1px solid #29465f;
  background:linear-gradient(180deg,#183954,#112a42);
}
.auto-helper-header > div { display:flex; align-items:center; gap:8px; }
.auto-helper-header > div > span { color:#d6e3ed; font-size:16px; }
.auto-helper-header h2 {
  margin:0;
  color:#edf5fb;
  font-family:"Barlow",sans-serif;
  font-size:16px;
  font-weight:900;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.auto-helper-header button {
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  background:transparent;
  color:#a7bbcb;
  cursor:pointer;
}
.auto-helper-header button:hover { color:#fff; }
.auto-helper-header svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; }
.auto-helper-content {
  min-height:0;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px;
  scrollbar-width:thin;
  scrollbar-color:#42617e #091725;
}
.auto-helper-section {
  position:relative;
  padding:7px;
  border:1px solid #2a4d68;
  border-radius:8px;
  background:linear-gradient(180deg,#10283b,#0b1d2d);
  box-shadow:inset 0 1px 0 #ffffff0b;
  transition:border-color 120ms ease,opacity 120ms ease;
}
.auto-helper-section:not(.disabled) { border-color:#1eaa4c; box-shadow:inset 0 1px 0 #ffffff0b,0 0 0 1px #1eaa4c18; }
.auto-helper-section.disabled { opacity:.68; }
.auto-helper-section.compact { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; }
.auto-helper-toggle-row {
  display:grid;
  grid-template-columns:22px 30px minmax(0,1fr);
  align-items:center;
  gap:7px;
  min-height:34px;
  margin:0;
  cursor:pointer;
}
.auto-helper-toggle-row > input { position:absolute; opacity:0; pointer-events:none; }
.auto-helper-check {
  grid-column:1;
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  border:1px solid #536b7f;
  border-radius:4px;
  background:#071521;
  color:transparent;
  font-size:12px;
  font-weight:900;
}
.auto-helper-toggle-row > input:checked + .auto-helper-check {
  color:#07180c;
  border-color:#46dd6e;
  background:#45dc6d;
}
.auto-helper-toggle-row > img {
  grid-column:2;
  width:29px;
  height:29px;
  object-fit:contain;
  image-rendering:pixelated;
  filter:drop-shadow(0 2px 2px #000b);
}
.auto-helper-toggle-row > span:last-child { grid-column:3; min-width:0; }
.auto-helper-toggle-row strong { display:block; color:#edf5fb; font-size:12px; font-weight:850; }
.auto-helper-toggle-row small { display:block; overflow:hidden; margin-top:2px; color:#8096aa; font-size:8px; line-height:1.25; text-overflow:ellipsis; }
.auto-helper-options {
  display:grid;
  grid-template-columns:1fr;
  gap:6px;
  margin-top:7px;
  padding:7px 6px 2px;
  border-top:1px solid #253e53;
}
.auto-helper-options label {
  display:grid;
  grid-template-columns:82px 1fr;
  align-items:center;
  gap:6px;
  margin:0;
  color:#91a3b5;
  font-size:9px;
  font-weight:700;
}
.auto-helper-options select {
  height:30px;
  min-width:0;
  padding:4px 8px;
  color:#f1f5f8;
  border:1px solid #526a7e;
  border-radius:6px;
  background:#081622;
  font-family:"Barlow",sans-serif;
  font-size:10px;
  font-weight:750;
}
.auto-helper-options select:disabled { opacity:.55; }
.auto-helper-stock {
  min-width:28px;
  padding:4px 6px;
  border:1px solid #3d5c73;
  border-radius:999px;
  color:#d9e7f2;
  background:#071521;
  font-size:10px;
  text-align:center;
}
.auto-helper-ball-block {
  margin-top:7px;
  padding:7px 6px 2px;
  border-top:1px solid #253e53;
}
.auto-helper-ball-block > small { display:block; margin-bottom:6px; color:#91a3b5; font-size:9px; font-weight:700; }
.auto-helper-ball-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; }
.auto-helper-ball {
  min-width:0;
  min-height:43px;
  display:grid;
  grid-template-columns:24px 1fr;
  grid-template-rows:22px 12px;
  align-items:center;
  gap:0 4px;
  padding:3px 5px;
  border:1px solid #36566f;
  border-radius:999px;
  background:linear-gradient(180deg,#10263a,#0a1927);
  color:#dce8f2;
  cursor:pointer;
}
.auto-helper-ball:hover { border-color:#6e8ba1; }
.auto-helper-ball.selected {
  border-color:#d1a950;
  background:linear-gradient(180deg,#293342,#172536);
  box-shadow:0 0 9px #d1a9502c,inset 0 1px 0 #ffffff18;
}
.auto-helper-ball img { grid-row:1 / 3; width:23px; height:23px; object-fit:contain; image-rendering:pixelated; }
.auto-helper-ball > .animated-item-visual { grid-row:1 / 3; width:23px; height:23px; }
.auto-helper-ball > .animated-item-visual .animated-item-fallback,
.auto-helper-ball > .animated-item-visual .animated-item-viewport { width:23px; height:23px; }
.auto-helper-ball strong { align-self:end; color:#eef5fa; font-size:11px; line-height:12px; text-align:left; }
.auto-helper-ball small { align-self:start; overflow:hidden; color:#8297a9; font-size:6px; line-height:8px; text-align:left; white-space:nowrap; text-overflow:ellipsis; }
.auto-helper-section.disabled .auto-helper-ball-block { opacity:.5; }
.auto-helper-footer {
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:8px 12px 10px;
  border-top:1px solid #29455d;
  background:#081724;
  text-align:center;
}
.auto-helper-footer span { color:#7890a5; font-size:8px; }
.auto-helper-footer b { color:#4ecb70; font-size:8px; letter-spacing:.03em; }
@media (max-width:420px) {
  .auto-helper-overlay { place-items:start center; overflow:auto; padding:8px; }
  .auto-helper-window { width:100%; max-height:calc(100vh - 16px); }
}

/* v0.6.48 — texto de EXP visível também no slot selecionado */
.team-status-bar.state > b {
  position: absolute !important;
  inset: 0 !important;
  z-index: 3 !important;
  width: 100% !important;
  height: 9px !important;
  min-height: 9px !important;
  margin: 0 !important;
  padding: 0 2px !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  color: #f6fbff !important;
  font-size: 6px !important;
  font-weight: 800 !important;
  line-height: 9px !important;
  letter-spacing: 0 !important;
  text-align: center !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
  text-shadow: 0 1px 2px #000 !important;
  pointer-events: none !important;
}

/* v0.6.49 — centralização exata da EXP e seleção múltipla de Pokémon */
.team-status-bar.state > b {
  inset: auto !important;
  left: 50% !important;
  top: 50% !important;
  right: auto !important;
  bottom: auto !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
  line-height: 1 !important;
  text-align: center !important;
  transform: translate(-50%, -50%) !important;
  font-variant-numeric: tabular-nums;
}
/* v0.6.51 — Depot global do Centro Pokémon */
.mainbar-button.unavailable {
  opacity: .5;
  filter: grayscale(.55);
}
.depot-overlay {
  position: fixed;
  inset: 0;
  z-index: 76;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(2, 8, 15, .67);
  backdrop-filter: blur(2px);
}
.depot-overlay.hidden { display: none; }
.depot-window {
  width: min(820px, calc(100vw - 28px));
  max-height: min(820px, calc(100vh - 36px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #365a77;
  border-radius: 10px;
  background: linear-gradient(180deg, #101d2a 0%, #0a141f 100%);
  box-shadow: 0 24px 64px #000b, inset 0 1px 0 #ffffff10;
  color: #dce9f3;
}
.depot-header {
  position: relative;
  min-height: 66px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 58px 12px 16px;
  border-bottom: 1px solid #263d51;
  background: #0c1722;
}
.depot-title,
.depot-header-actions,
.depot-title span {
  display: flex;
  align-items: center;
}
.depot-title { gap: 10px; }
.depot-title > img {
  width: 34px;
  height: 34px;
  object-fit: contain;
  image-rendering: pixelated;
}
.depot-title span { align-items: flex-start; flex-direction: column; gap: 1px; }
.depot-title small {
  color: #7292ab;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .12em;
}
.depot-title h2 {
  margin: 0;
  color: #f1f7fb;
  font: 800 20px/1.05 Barlow, sans-serif;
  text-transform: uppercase;
}
.depot-header-actions { gap: 10px; }
.depot-header-actions strong {
  padding: 7px 10px;
  border: 1px solid #365e7d;
  border-radius: 6px;
  background: #07131e;
  color: #9ed1f1;
  font-size: 11px;
  white-space: nowrap;
}
.depot-close-button {
  position: absolute;
  z-index: 3;
  top: 50%;
  right: 16px;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: #9eb0be;
  cursor: pointer;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(-50%);
  visibility: visible;
}
.depot-close-button:hover {
  border-color: #365e7d;
  background: #132230;
  color: #eef8ff;
}
.depot-close-button:focus-visible {
  border-color: #5687ac;
  outline: 2px solid #5687ac;
  outline-offset: 2px;
}
.depot-close-button svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}
.depot-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 10px 14px 8px;
  background: #0c1722;
}
.depot-tab {
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid #314b61;
  border-radius: 7px;
  background: #132230;
  color: #9eb0bf;
  font: 700 12px Barlow, sans-serif;
  cursor: pointer;
}
.depot-tab b {
  min-width: 24px;
  padding: 2px 5px;
  border-radius: 10px;
  background: #07131d;
  color: #7f9eb7;
  font-size: 9px;
}
.depot-tab.active {
  border-color: #5687ac;
  background: linear-gradient(180deg, #17334a, #10283b);
  color: #eef8ff;
  box-shadow: inset 0 1px 0 #ffffff10;
}
.depot-tab.active b { color: #d8efff; background: #0a1c2b; }
.depot-status {
  padding: 7px 16px 9px;
  border-bottom: 1px solid #203548;
  background: #0c1722;
  color: #7694aa;
  font-size: 10px;
}
.depot-content {
  flex: 1 1 auto;
  min-height: 260px;
  overflow: auto;
  padding: 14px;
  scrollbar-color: #365c78 #09141e;
}
.depot-loading,
.depot-empty {
  min-height: 88px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
  border: 1px dashed #294256;
  border-radius: 8px;
  color: #718da3;
  font-size: 11px;
  text-align: center;
}
.depot-empty strong { color: #a8bed0; font-size: 11px; }
.depot-empty span { color: #668095; font-size: 9px; }
.depot-section + .depot-section { margin-top: 16px; }
.depot-section > header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 8px;
  padding: 0 2px;
}
.depot-section > header span { display: flex; flex-direction: column; }
.depot-section > header small {
  color: #58788f;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .12em;
}
.depot-section > header strong {
  color: #dce8f1;
  font-size: 13px;
}
.depot-section > header b {
  color: #7898ae;
  font-size: 10px;
  font-weight: 700;
}
.depot-pokemon-grid,
.depot-item-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.depot-pokemon-card,
.depot-item-card {
  min-width: 0;
  min-height: 66px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 9px;
  border: 1px solid #203748;
  border-radius: 8px;
  background: linear-gradient(180deg, #111e2a, #0d1924);
  box-shadow: inset 0 1px 0 #ffffff08;
}
.depot-pokemon-card.disabled { opacity: .66; }
.depot-pokemon-portrait {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 1px solid #365b77;
  border-radius: 50%;
  background: radial-gradient(circle, #17344b, #091724 70%);
  overflow: hidden;
}
.depot-pokemon-portrait img {
  width: 44px;
  height: 44px;
  object-fit: contain;
  image-rendering: pixelated;
}
.depot-pokemon-copy,
.depot-item-copy {
  min-width: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.depot-pokemon-copy strong,
.depot-item-copy strong {
  overflow: hidden;
  color: #e4edf4;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.depot-pokemon-copy small,
.depot-item-copy small {
  color: #7892a5;
  font-size: 8px;
}
.depot-pokemon-card > em {
  color: #738a9b;
  font-size: 8px;
  font-style: normal;
  white-space: nowrap;
}
.depot-pokemon-card > button,
.depot-item-card > button {
  flex: 0 0 auto;
  min-width: 64px;
  height: 30px;
  border: 1px solid #477695;
  border-radius: 6px;
  background: linear-gradient(180deg, #17364e, #10283b);
  color: #d9efff;
  font: 800 9px Barlow, sans-serif;
  cursor: pointer;
}
.depot-pokemon-card > button:disabled {
  border-color: #2b3c49;
  background: #16212a;
  color: #657683;
  cursor: not-allowed;
}
.depot-item-card > img {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  object-fit: contain;
  image-rendering: pixelated;
}
.depot-item-card label {
  display: flex;
  align-items: center;
  gap: 4px;
  color: #6f899c;
  font-size: 8px;
}
.depot-item-card input {
  width: 52px;
  height: 28px;
  box-sizing: border-box;
  border: 1px solid #2d4b61;
  border-radius: 5px;
  background: #07131d;
  color: #e4f2fc;
  font: 700 10px Barlow, sans-serif;
  text-align: center;
  outline: none;
}
@media (max-width: 720px) {
  .depot-overlay { place-items: start center; overflow: auto; padding: 8px; }
  .depot-window { width: 100%; max-height: calc(100vh - 16px); }
  .depot-pokemon-grid, .depot-item-grid { grid-template-columns: 1fr; }
  .depot-header { padding: 10px 52px 10px 10px; }
  .depot-close-button { right: 10px; }
  .depot-title h2 { font-size: 17px; }
  .depot-header-actions strong { font-size: 9px; }
}

/* v0.6.54 — Loja de Diamantes segura */

/* 17 HUNTS — v0.6.61 */

.hunt-art {
  background:radial-gradient(circle at 24% 28%,#78a95a33 0 3px,transparent 4px),linear-gradient(145deg,#385b40,#183429 58%,#10251d);
}
.hunt-art:before {
  content:"";
  position:absolute;
  right:10px;
  bottom:-6px;
  width:82px;
  height:82px;
  background-image:var(--hunt-portrait);
  background-position:center;
  background-repeat:no-repeat;
  background-size:contain;
  image-rendering:pixelated;
  filter:drop-shadow(0 7px 5px #0009);
}
.destination-list { max-height:calc(100vh - 330px); overflow:auto; padding-right:4px; }
.destination-list::-webkit-scrollbar { width:6px; }
.destination-list::-webkit-scrollbar-thumb { border-radius:8px; background:#355b7a; }

/* Kanto v0.6.64 — espécies com mais de oito golpes usam uma segunda linha. */
.move-dock.multi-row {
  width:max-content;
  max-width:none;
}
@media (max-width:760px) {
  .move-dock.multi-row {
    width:max-content;
    max-width:calc(100vw - 16px);
  }
}

/* MENU DE VIAGEM ORGANIZADO — v0.6.67 */
.game-drawer.centered-game-modal {
  position:fixed;
  z-index:76;
  inset:0;
  width:min(820px,calc(100vw - 36px));
  height:min(680px,calc(100vh - 48px));
  max-width:820px;
  max-height:calc(100vh - 48px);
  margin:auto;
  overflow:hidden;
  opacity:0;
  pointer-events:none;
  visibility:hidden;
  border:1px solid #365a77;
  border-radius:10px;
  background:linear-gradient(180deg,#101d2a 0%,#0a141f 100%);
  box-shadow:0 24px 64px #000b,inset 0 1px 0 #ffffff10;
  transform:scale(.985);
  transition:opacity .18s ease,transform .2s ease,visibility 0s linear .2s;
}
.game-drawer.centered-game-modal.open {
  opacity:1;
  pointer-events:auto;
  visibility:visible;
  transform:scale(1);
  transition-delay:0s;
}
.drawer-backdrop.centered-modal-backdrop {
  position:fixed;
  z-index:75;
  inset:0;
  background:rgba(2,8,15,.67);
  -webkit-backdrop-filter:blur(2px);
  backdrop-filter:blur(2px);
}
.game-drawer.centered-game-modal:before { display:none; }
.game-drawer.centered-game-modal .drawer-header {
  position:relative;
  min-height:66px;
  padding:12px 58px 12px 16px;
  border-bottom:1px solid #263d51;
  background:#0c1722;
}
.game-drawer.centered-game-modal .drawer-close {
  position:absolute;
  z-index:3;
  top:50%;
  right:16px;
  width:32px;
  height:32px;
  border-color:transparent;
  border-radius:6px;
  background:transparent;
  transform:translateY(-50%);
}
.game-drawer.centered-game-modal .drawer-close:hover {
  color:#dce8f1;
  border-color:#3c617d;
  background:#162a3a;
}
.game-drawer.centered-game-modal .drawer-close:focus-visible {
  outline:2px solid #69b7d2;
  outline-offset:2px;
}
.travel-view.active {
  display:flex;
  flex-direction:column;
  gap:8px;
  overflow:hidden;
  padding:12px 18px 16px;
}
.travel-browser-intro {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:0 0 5px;
}
.travel-browser-intro > div { min-width:0; }
.travel-browser-intro strong { margin-top:3px; font-size:16px; }
.travel-browser-intro p { max-width:560px; margin-top:3px; line-height:1.35; }
.travel-total-count {
  flex:0 0 auto;
  padding:6px 9px;
  color:#a9cae8;
  border:1px solid #416987;
  border-radius:6px;
  background:#091c2d;
  font-size:8px;
  font-weight:900;
  letter-spacing:.1em;
}
.travel-toolbar {
  display:grid;
  grid-template-columns:minmax(240px,1fr) auto minmax(150px,170px);
  grid-template-rows:30px 24px;
  gap:4px 6px;
  align-items:center;
  padding:5px 6px;
  border:1px solid #31526c;
  border-radius:9px;
  background:linear-gradient(180deg,#102941,#081a2b);
  box-shadow:inset 0 1px 0 #ffffff0b;
}
.travel-search {
  position:relative;
  display:block;
  min-width:0;
  grid-column:1;
  grid-row:1;
}
.travel-search svg {
  position:absolute;
  z-index:2;
  left:10px;
  top:50%;
  width:15px;
  height:15px;
  fill:none;
  stroke:#7897b3;
  stroke-width:1.8;
  transform:translateY(-50%);
  pointer-events:none;
}
.travel-search input {
  width:100%;
  height:30px;
  margin:0;
  padding:0 12px 0 34px;
  color:#e8f4ff;
  border:1px solid #345874;
  border-radius:7px;
  outline:0;
  background:#061522;
  font-size:10px;
}
.travel-search input::placeholder { color:#69849d; }
.travel-search input:focus {
  border-color:#6d9cc4;
  box-shadow:0 0 0 2px #4f85b226;
}
.travel-filter-row {
  display:flex;
  align-items:center;
  gap:3px;
  min-width:0;
  grid-column:1 / -1;
  grid-row:2;
}
.travel-type-select {
  position:relative;
  min-width:150px;
  margin:0;
  grid-column:3;
  grid-row:1;
}
.travel-type-select select {
  width:100%;
  height:30px;
  margin:0;
  padding:0 28px 0 9px;
  color:#dcefff;
  border:1px solid #3f718d;
  border-radius:5px;
  outline:0;
  background:#0d3046;
  font-size:7px;
  font-weight:900;
  letter-spacing:.055em;
  cursor:pointer;
}
.travel-type-select select:hover { border-color:#5794b4; background:#123a52; }
.travel-type-select select:focus-visible { outline:2px solid #69b7d2; outline-offset:2px; }
.travel-filter {
  height:24px;
  min-height:24px;
  padding:0 7px;
  color:#91a8bb;
  border:1px solid #29465b80;
  border-radius:4px;
  background:#091b2a99;
  font-size:7px;
  font-weight:850;
  letter-spacing:.045em;
  line-height:1;
  white-space:nowrap;
  transition:color .12s ease,border-color .12s ease,background-color .12s ease,box-shadow .12s ease;
}
.travel-sort-button {
  height:30px;
  padding:0 8px;
  color:#7f98ae;
  border:1px solid transparent;
  border-radius:6px;
  background:transparent;
  font-size:8px;
  font-weight:900;
  letter-spacing:.06em;
  white-space:nowrap;
}
.travel-filter:hover {
  color:#d7e9f5;
  border-color:#355f78;
  background:#102c42;
}
.travel-sort-button:hover {
  color:#dfeeff;
  background:#12304a;
}
.travel-filter.active,
.travel-filter[aria-pressed="true"] {
  color:#e4f7ff;
  border-color:#3f82a3;
  background:#123c56;
  box-shadow:inset 0 1px 0 #ffffff14,0 0 0 1px #2873921f;
}
.travel-filter:focus-visible {
  outline:2px solid #69b7d2;
  outline-offset:2px;
}
.travel-sort-button.active {
  color:#dcefff;
  border-color:#417897;
  background:#123b54;
  box-shadow:inset 0 1px 0 #ffffff12;
}
.travel-sort-button {
  grid-column:2;
  grid-row:1;
  border-color:#365873;
  background:#0a1c2c;
}
.travel-section {
  min-height:0;
}
.travel-section > header {
  display:flex;
  align-items:center;
  gap:9px;
  min-height:22px;
  margin-bottom:5px;
}
.travel-section > header strong,
.travel-favorite-section > header strong {
  color:#87a4be;
  font-size:8px;
  font-weight:900;
  letter-spacing:.12em;
}
.travel-section > header small,
.travel-favorite-section > header small {
  color:#58738c;
  font-size:8px;
}
.travel-city-list {
  display:block;
  margin:0;
}
.travel-hunt-section {
  display:flex;
  flex:1;
  flex-direction:column;
  min-height:0;
}
.travel-favorite-section {
  flex:0 0 auto;
  min-height:0;
  margin-top:2px;
}
.travel-favorite-section > header {
  display:flex;
  align-items:center;
  gap:9px;
  min-height:22px;
  margin-bottom:5px;
}
.travel-favorite-grid {
  max-height:204px;
  padding-right:4px;
  overflow:auto;
}
.travel-favorite-empty {
  display:grid;
  min-height:64px;
  place-content:center;
  padding:8px;
  color:#6d879d;
  border:1px dashed #315168;
  border-radius:8px;
  background:#081725;
  font-size:8px;
  text-align:center;
}
.travel-favorite-empty strong { color:#a9c1d1; font-size:9px; }
.travel-favorite-empty span { margin-top:4px; font-size:7px; }
.travel-favorite-empty.hidden { display:none; }
.travel-hunt-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  min-height:0;
  max-height:none;
  margin:0;
  padding:0 4px 3px 0;
  overflow:auto;
  align-content:start;
}
.travel-destination-card-shell {
  position:relative;
  min-width:0;
  height:128px;
}
.travel-destination-card-shell.travel-filtered-out { display:none !important; }
.travel-destination-card-shell .destination-card { width:100%; }
.travel-view .destination-card {
  position:relative;
  height:128px;
  min-height:128px;
  display:flex;
  align-items:stretch;
  overflow:hidden;
  border:1px solid #304d62;
  border-radius:9px;
  background:linear-gradient(180deg,#101f2d,#0a1722);
  box-shadow:inset 0 1px 0 #ffffff0a;
  transition:border-color .14s,background .14s,transform .14s;
}
.travel-view .destination-card:hover:not(:disabled) {
  border-color:#587c98;
  background:linear-gradient(180deg,#142b3e,#0b1d2c);
  transform:translateY(-1px);
}
.travel-view .destination-card.current {
  border-color:#3c8d70;
  box-shadow:inset 3px 0 0 #42b486,0 0 0 1px #42b48620;
}
.travel-view .destination-card.selected {
  border-color:#e9b34d;
  box-shadow:inset 3px 0 0 #f3bd52,0 0 0 1px #f3bd5226;
}
.travel-card-portrait {
  position:relative;
  width:88px;
  flex:0 0 88px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-right:1px solid #2c475c;
  background:radial-gradient(circle at 50% 40%,#234e5e 0,#142f3d 45%,#0c1e2a 100%);
}
.travel-card-portrait:after {
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  bottom:10px;
  height:8px;
  border-radius:50%;
  background:#0008;
  filter:blur(5px);
}
.travel-card-portrait img {
  position:relative;
  z-index:2;
  width:72px;
  height:72px;
  object-fit:contain;
  image-rendering:pixelated;
  filter:drop-shadow(0 5px 3px #000a);
}
.city-card .travel-card-portrait img {
  width:54px;
  height:54px;
  image-rendering:auto;
}
.travel-card-main {
  min-width:0;
  flex:1;
  display:flex;
  flex-direction:column;
  padding:10px 10px 9px 11px;
  text-align:left;
}
.travel-favorite-toggle {
  position:absolute;
  z-index:3;
  top:8px;
  right:8px;
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  padding:0;
  color:#829aab;
  border:1px solid transparent;
  border-radius:5px;
  background:transparent;
  font-family:inherit;
  font-size:17px;
  line-height:1;
  cursor:pointer;
  transition:color .12s ease,background-color .12s ease,border-color .12s ease,transform .12s ease;
}
.travel-favorite-toggle:hover {
  color:#f4cf73;
  border-color:#705f2d;
  background:#2a2513;
  transform:translateY(-1px);
}
.travel-favorite-toggle.active { color:#f3c95f; text-shadow:0 0 8px #e2af4c55; }
.travel-favorite-toggle:focus-visible { outline:2px solid #69b7d2; outline-offset:2px; }
.travel-card-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.travel-card-heading strong {
  min-width:0;
  overflow:hidden;
  color:#edf5fc;
  font-size:11px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.travel-card-heading b {
  flex:0 0 auto;
  color:#8ca5ba;
  font-size:7px;
  font-weight:900;
}
.travel-card-main > small {
  display:block;
  margin-top:3px;
  color:#67839a;
  font-size:7px;
  font-weight:900;
  letter-spacing:.08em;
}
.travel-card-description {
  min-height:24px;
  display:block;
  margin-top:6px;
  color:#7890a3;
  font-size:8px;
  line-height:1.4;
}
.travel-card-meta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:7px;
  margin-top:auto;
  padding-top:7px;
  padding-right:78px;
}
.travel-difficulty,.travel-view .destination-state {
  display:inline-flex;
  align-items:center;
  min-height:18px;
  padding:0 7px;
  border:1px solid #3c5c70;
  border-radius:999px;
  background:#0a1b28;
  font-size:6px;
  font-style:normal;
  font-weight:900;
  letter-spacing:.09em;
}
.travel-difficulty.easy { color:#64d88d; border-color:#28754b; background:#0b2d1c; }
.travel-difficulty.medium { color:#f4cf5a; border-color:#736125; background:#2b2510; }
.travel-difficulty.hard { color:#f08b62; border-color:#804028; background:#301910; }
.travel-difficulty.city { color:#7fc7ef; border-color:#2d6788; background:#0b2738; }
.travel-view .destination-state {
  color:#7897ad;
  border-radius:5px;
}
.travel-view .destination-card.current .destination-state {
  color:#7ce0ad;
  border-color:#2f7656;
  background:#0b3024;
}
.travel-view .destination-card.selected .destination-state {
  color:#ffd678;
  border-color:#796023;
  background:#30260d;
}
.travel-view .destination-card.compact-hunt-card {
  min-height:84px;
}
.compact-hunt-card .travel-card-main.compact {
  justify-content:center;
  padding:12px;
}
.compact-hunt-card .travel-card-heading strong {
  font-size:13px;
  line-height:1.15;
}
.travel-card-types {
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  gap:5px;
  height:19px;
  margin-top:8px;
  overflow:hidden;
}
.travel-card-recommended {
  display:block;
  margin-top:6px;
  overflow:hidden;
  color:#8ca5ba;
  font-size:7px;
  font-weight:900;
  letter-spacing:.055em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.travel-card-action {
  position:absolute;
  z-index:4;
  right:8px;
  bottom:8px;
  width:72px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 6px;
  color:#12202a;
  border:1px solid #dca532;
  border-radius:5px;
  background:linear-gradient(180deg,#ffd15a,#e7a72d);
  box-shadow:inset 0 1px 0 #fff7;
  font-size:6px;
  font-weight:900;
  letter-spacing:.045em;
  white-space:nowrap;
  cursor:pointer;
}
.travel-card-action:hover:not(:disabled) { border-color:#f2c759; background:linear-gradient(180deg,#ffdf76,#efb43c); }
.travel-card-action:focus-visible { outline:2px solid #69b7d2; outline-offset:2px; }
.travel-card-action:disabled { color:#709083; border-color:#2f7057; background:#0d3025; box-shadow:none; cursor:default; }
.travel-type {
  display:inline-flex;
  align-items:center;
  min-height:19px;
  padding:0 7px;
  border:1px solid #465e72;
  border-radius:4px;
  background:linear-gradient(180deg,#26394a,#172635);
  color:#d8e4ee;
  font-size:7px;
  font-style:normal;
  font-weight:900;
  letter-spacing:.06em;
  box-shadow:inset 0 1px 0 #ffffff12;
}
.travel-type.type-normal { color:#e1e4e7; border-color:#68717a; background:linear-gradient(180deg,#59616a,#343b42); }
.travel-type.type-fire { color:#ffe0c8; border-color:#9f563b; background:linear-gradient(180deg,#9a482d,#5b281d); }
.travel-type.type-water { color:#d8edff; border-color:#3971a8; background:linear-gradient(180deg,#376f9f,#23445f); }
.travel-type.type-electric { color:#fff2a8; border-color:#967b1d; background:linear-gradient(180deg,#8d7117,#54450f); }
.travel-type.type-grass { color:#d8f3cf; border-color:#477d40; background:linear-gradient(180deg,#3f7539,#274b25); }
.travel-type.type-ice { color:#dcfbf8; border-color:#4c8a86; background:linear-gradient(180deg,#477f7c,#2b4f4d); }
.travel-type.type-fighting { color:#ffd6d1; border-color:#8f4038; background:linear-gradient(180deg,#84382f,#4d231f); }
.travel-type.type-poison { color:#f2d7ff; border-color:#79458c; background:linear-gradient(180deg,#704181,#44294e); }
.travel-type.type-ground { color:#f1ddc5; border-color:#8f6740; background:linear-gradient(180deg,#805c3b,#4b3825); }
.travel-type.type-flying { color:#e4e2ff; border-color:#655b9a; background:linear-gradient(180deg,#5f568f,#393557); }
.travel-type.type-psychic { color:#ffd7e8; border-color:#9a4768; background:linear-gradient(180deg,#8e3f5e,#56273b); }
.travel-type.type-bug { color:#eaf3bf; border-color:#68792d; background:linear-gradient(180deg,#607026,#3b4519); }
.travel-type.type-rock { color:#eee3c4; border-color:#776b42; background:linear-gradient(180deg,#6d623e,#413b27); }
.travel-type.type-ghost { color:#ded9ff; border-color:#534a83; background:linear-gradient(180deg,#4e467a,#302d4b); }
.travel-type.type-dragon { color:#ded7ff; border-color:#58429d; background:linear-gradient(180deg,#503c91,#30265a); }
.travel-type.type-dark { color:#ddd5d0; border-color:#574a45; background:linear-gradient(180deg,#4c403c,#2f2927); }
.travel-type.type-steel { color:#dceaf0; border-color:#54717c; background:linear-gradient(180deg,#4d6873,#30434a); }
.travel-type.type-fairy { color:#ffe0fa; border-color:#975987; background:linear-gradient(180deg,#8d507e,#57324f); }
.travel-empty {
  flex:1;
  place-content:center;
  min-height:150px;
  padding:24px;
  text-align:center;
  border:1px dashed #35556b;
  border-radius:9px;
  background:#081725;
}
.travel-empty:not(.hidden) { display:grid; }

/* v0.6.68 — filtros realmente removem os cards do fluxo visual. */
.travel-view .destination-card[hidden],
.travel-view .destination-card.travel-filtered-out {
  display:none !important;
}
.travel-empty.hidden,
.travel-empty[hidden] {
  display:none !important;
}
.travel-empty strong { color:#d9e8f5; font-size:11px; }
.travel-empty span { margin-top:5px; color:#6d879d; font-size:9px; }
.travel-selection-bar {
  flex:0 0 auto;
  display:grid;
  grid-template-columns:minmax(150px,1fr) minmax(260px,360px);
  align-items:center;
  gap:12px;
  padding-top:11px;
  border-top:1px solid #315069;
}
.travel-selection-bar small {
  display:block;
  color:#68879f;
  font-size:7px;
  font-weight:900;
  letter-spacing:.11em;
}
.travel-selection-bar strong {
  display:block;
  margin-top:4px;
  overflow:hidden;
  color:#edf6ff;
  font-size:11px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.travel-selection-bar .travel-primary {
  min-height:38px;
  margin:0;
  border-color:#e2aa3e;
  background:linear-gradient(180deg,#f5bd4b,#d99525);
  color:#101820;
  box-shadow:0 7px 18px #d08e2540,inset 0 1px 0 #fff7;
}
.travel-selection-bar .travel-primary:disabled {
  opacity:.45;
  filter:grayscale(.35);
  cursor:default;
}

@media (max-width:900px) {
  .game-drawer.centered-game-modal {
    width:min(820px,calc(100vw - 24px));
    height:min(680px,calc(100vh - 24px));
    max-height:calc(100vh - 24px);
  }
  .travel-toolbar {
    grid-template-columns:minmax(160px,1fr) auto;
    grid-template-rows:30px 24px;
  }
  .travel-type-select { grid-column:2; grid-row:2; }
  .travel-filter-row { grid-column:1; grid-row:2; }
  .travel-filter-row { overflow-x:auto; overflow-y:hidden; }
}
@media (max-width:620px) {
  .game-drawer.centered-game-modal { width:calc(100vw - 24px); max-width:calc(100vw - 24px); }
  .travel-view.active { padding:12px; }
  .travel-browser-intro p { display:none; }
  .travel-toolbar { grid-template-columns:minmax(0,1fr) auto; grid-template-rows:30px 30px 24px; }
  .travel-search { grid-column:1 / -1; grid-row:1; }
  .travel-sort-button { grid-column:1; grid-row:2; justify-self:start; }
  .travel-type-select { grid-column:2; grid-row:2; }
  .travel-filter-row { grid-column:1 / -1; grid-row:3; }
  .travel-type-select { min-width:118px; }
  .travel-type-select select { padding-left:7px; font-size:6px; }
  .travel-hunt-grid { grid-template-columns:1fr; }
  .travel-selection-bar { grid-template-columns:1fr; }
  .travel-selection-bar > div { display:none; }
  .travel-card-portrait { width:76px; flex-basis:76px; }
  .travel-card-portrait img { width:62px; height:62px; }
}

/* Exploração — integra Hunts e Ginásios no mesmo hub sem alterar seus fluxos. */
.game-drawer.centered-game-modal.travel-expanded {
  width:min(1120px,calc(100vw - 32px));
  height:min(760px,calc(100vh - 32px));
  max-width:1120px;
  max-height:calc(100vh - 32px);
}
.game-drawer.centered-game-modal.travel-expanded.gym-expanded {
  width:min(1600px,calc(100vw - 24px));
  height:min(900px,calc(100vh - 24px));
  max-width:1600px;
  max-height:calc(100vh - 24px);
}
.travel-view.active.explore-view {
  display:grid;
  grid-template-columns:196px minmax(0,1fr);
  gap:0;
  padding:0;
  background:#09131d;
}
.explore-sidebar {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:14px 11px;
  border-right:1px solid #2b465a;
  background:linear-gradient(180deg,#101b27,#0b141e);
}
.explore-sidebar-heading { display:flex; flex-direction:column; gap:2px; padding:0 8px 7px; }
.explore-sidebar-heading small { color:#5f8098; font-size:7px; font-weight:900; letter-spacing:.14em; }
.explore-sidebar-heading strong { color:#dbe9f2; font-size:11px; letter-spacing:.05em; }
.explore-sidebar-item {
  position:relative;
  min-height:64px;
  display:grid;
  grid-template-columns:32px minmax(0,1fr);
  align-items:center;
  gap:9px;
  padding:8px 9px;
  color:#90a6b8;
  border:1px solid transparent;
  border-radius:7px;
  background:transparent;
  text-align:left;
}
.explore-sidebar-item img,
.explore-sidebar-item > .gym-mainbar-icon { width:28px; height:28px; object-fit:contain; image-rendering:auto; }
.explore-sidebar-item img[src$="/guild.png"] { width:30px; height:30px; }
.explore-sidebar-item img[src$="/registro.png"] { width:26px; height:26px; }
.explore-sidebar-item span { min-width:0; display:flex; flex-direction:column; gap:2px; }
.explore-sidebar-item strong { color:inherit; font-size:13px; font-weight:800; line-height:1.05; }
.explore-sidebar-item small { overflow:hidden; color:#71899c; font-size:10px; line-height:1.15; text-overflow:ellipsis; white-space:nowrap; }
.explore-sidebar-item.active {
  color:#17202a;
  border-color:#efbd4c;
  background:linear-gradient(180deg,#ffd75b,#edac2e);
  box-shadow:0 7px 16px #d4922533,inset 0 1px 0 #fff8;
}
.explore-sidebar-item.active small { color:#675019; }
.explore-sidebar-item.is-locked { padding-right:58px; opacity:.65; cursor:not-allowed; }
.explore-sidebar-item em {
  position:absolute;
  right:6px;
  top:7px;
  padding:2px 4px;
  color:#93a6b4;
  border:1px solid #3c5262;
  border-radius:3px;
  background:#0b1720;
  font-size:7px;
  font-style:normal;
  font-weight:900;
  letter-spacing:.08em;
}
.explore-workspace { min-width:0; min-height:0; display:flex; flex-direction:column; overflow:hidden; }
.explore-region-tabs {
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:5px;
  padding:9px 12px 5px;
  background:#0a151f;
}
.explore-region-tabs.hidden { display:none; }
.explore-region-tabs button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:28px;
  padding:0 12px;
  color:#7891a5;
  border:1px solid #2b485c;
  border-radius:6px;
  background:#0b1925;
  font-size:8px;
  font-weight:900;
  letter-spacing:.06em;
}
.explore-region-tabs button.active {
  color:#eef7fd;
  border-color:#4d7b98;
  background:linear-gradient(180deg,#17445e,#103047);
  box-shadow:inset 0 1px 0 #ffffff14;
}
.explore-region-tabs button:first-child.active { color:#171f25; border-color:#e4ae36; background:linear-gradient(180deg,#ffd55a,#eca92b); }
.explore-region-tabs button:disabled { opacity:.45; cursor:not-allowed; }
.explore-region-tabs button em { font-size:5px; font-style:normal; }
.explore-region-tabs .travel-total-count { min-width:20px; padding:3px 5px; color:inherit; border-color:currentColor; background:#0002; text-align:center; }
.explore-hunts-pane { min-height:0; display:flex; flex:1; flex-direction:column; gap:9px; padding:10px 12px 0; overflow-y:auto; }
.explore-hunts-pane.hidden { display:none; }
.explore-hunts-pane .travel-toolbar { flex:0 0 auto; }
.explore-hunt-groups { min-height:0; display:flex; flex-direction:column; gap:12px; }
.travel-card-pool:empty { display:none; }
.explore-hunt-group { display:flex; flex-direction:column; gap:6px; }
.explore-hunt-group[hidden] { display:none; }
.explore-hunt-group > header { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:8px; }
.explore-hunt-group > header strong { color:#dce8f0; font-size:10px; letter-spacing:.025em; }
.explore-hunt-group > header small { color:#657e91; font-size:7px; }
.explore-hunt-group > header b { display:grid; min-width:20px; height:18px; place-items:center; color:#8da7b8; border:1px solid #314e62; border-radius:999px; background:#0a1823; font-size:7px; }
.explore-hunt-group .travel-hunt-grid { grid-template-columns:repeat(3,minmax(0,1fr)); overflow:visible; }
.explore-hunt-group .destination-card { min-height:128px; }
.explore-gym-pane { min-height:0; display:flex; flex:1; flex-direction:column; overflow:hidden; }
.explore-gym-pane.hidden { display:none; }
.explore-gym-pane .kanto-gym-panel { width:100%; min-height:0; flex:1; }
.explore-gym-footer { flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; min-height:28px; padding:0 12px; color:#668399; border-top:1px solid #29465a; background:#09141e; font-size:7px; font-weight:900; letter-spacing:.08em; }
.explore-gym-footer strong { color:#9bb5c6; font-size:8px; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; }

@media (max-width:900px) {
  .game-drawer.centered-game-modal.travel-expanded { width:calc(100vw - 24px); height:calc(100vh - 24px); max-width:calc(100vw - 24px); }
  .travel-view.active.explore-view { grid-template-columns:180px minmax(0,1fr); }
  .explore-hunt-group .travel-hunt-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px) {
  .travel-view.active.explore-view { grid-template-columns:1fr; grid-template-rows:auto minmax(0,1fr); }
  .explore-sidebar { flex-direction:row; padding:7px; overflow-x:auto; border-right:0; border-bottom:1px solid #2b465a; }
  .explore-sidebar-heading { display:none; }
  .explore-sidebar-item { min-width:154px; min-height:52px; grid-template-columns:27px minmax(0,1fr); padding:6px 8px; }
  .explore-sidebar-item img,
  .explore-sidebar-item > .gym-mainbar-icon { width:24px; height:24px; }
  .explore-region-tabs { padding-top:7px; }
  .explore-hunt-group .travel-hunt-grid { grid-template-columns:1fr; }
}

/* Pokémon evolution — faithful requirements from the original PokéTibia base. */
.pokemon-evolution-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  margin-top: 12px;
  padding: 11px;
  border: 1px solid rgba(245, 184, 47, .42);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(35, 52, 68, .96), rgba(10, 28, 42, .98));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 8px 18px rgba(0, 0, 0, .22);
}
.pokemon-evolution-panel.hidden { display: none; }
.pokemon-evolution-copy { min-width: 0; display: grid; gap: 2px; }
.pokemon-evolution-copy small {
  color: #f2bd43;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .9px;
}
.pokemon-evolution-copy strong {
  color: #f6f1df;
  font-size: 14px;
  line-height: 1.15;
}
.pokemon-evolution-copy span {
  color: #91a8b8;
  font-size: 10px;
  line-height: 1.25;
}
.pokemon-evolution-copy .pokemon-evolution-stone {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 7px;
  align-items: center;
  margin-top: 4px;
}
.pokemon-evolution-stone img {
  grid-row: 1 / 3;
  width: 28px;
  height: 28px;
  object-fit: contain;
  image-rendering: pixelated;
}
.pokemon-evolution-stone b { color: #dfeaf0; font-size: 10px; }
.pokemon-evolution-stone em { color: #91a8b8; font-size: 9px; font-style: normal; }
#pokemon-evolution-target {
  grid-column: 1 / -1;
  width: 100%;
  height: 32px;
  padding: 0 9px;
  border: 1px solid #31546c;
  border-radius: 6px;
  color: #eaf3f7;
  background: #071d2b;
  font: inherit;
  font-size: 11px;
  outline: none;
}
#pokemon-evolution-target.hidden { display: none; }
.pokemon-evolve-action {
  min-width: 132px;
  min-height: 35px;
  padding: 7px 11px;
  border: 1px solid #e8aa2d;
  border-radius: 6px;
  background: linear-gradient(180deg, #ffc24d, #dc921b);
  color: #201500;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .35px;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 5px 12px rgba(0,0,0,.26);
}
.pokemon-evolve-action:hover:not(:disabled) { filter: brightness(1.08); }
.pokemon-evolve-action:active:not(:disabled) { transform: translateY(1px); }
.pokemon-evolve-action:disabled {
  border-color: #334957;
  background: #172b38;
  color: #718692;
  cursor: not-allowed;
  box-shadow: none;
}
@media (max-width: 640px) {
  .pokemon-evolution-panel { grid-template-columns: 1fr; }
  .pokemon-evolve-action { width: 100%; }
}


/* v0.6.74 — os cinco cards inativos do time agora são controles selecionáveis. */
.battle-pokemon-card.team-slot-inactive,
.party-slot.secondary[data-select-pokemon-id] {
  cursor: pointer;
}
.battle-pokemon-card.team-slot-inactive:hover,
.party-slot.secondary[data-select-pokemon-id]:hover {
  opacity: 1;
  filter: brightness(1.08);
}
.battle-pokemon-card.team-slot-inactive.defeated {
  cursor: not-allowed;
}

/* v0.6.78 — detalhes das skills ao passar o mouse. */
.move-slot {
  position:relative;
  width:48px;
  height:48px;
}
.move-slot .move-button { width:100%; height:100%; }
.move-tooltip {
  position:absolute;
  z-index:80;
  left:50%;
  bottom:calc(100% + 10px);
  width:220px;
  padding:10px;
  pointer-events:none;
  color:#eaf4ff;
  border:1px solid rgba(91,139,180,.9);
  border-radius:7px;
  background:linear-gradient(180deg,rgba(14,42,67,.98),rgba(5,20,34,.99));
  box-shadow:0 14px 30px rgba(0,0,0,.62),inset 0 1px 0 rgba(255,255,255,.09);
  opacity:0;
  transform:translate(-50%,5px) scale(.98);
  transform-origin:bottom center;
  transition:opacity .14s ease,transform .14s ease;
  visibility:hidden;
}
.move-tooltip:after {
  content:"";
  position:absolute;
  left:50%;
  bottom:-6px;
  width:10px;
  height:10px;
  border-right:1px solid rgba(91,139,180,.9);
  border-bottom:1px solid rgba(91,139,180,.9);
  background:#071a2c;
  transform:translateX(-50%) rotate(45deg);
}
.move-slot:hover .move-tooltip,
.move-slot:focus-within .move-tooltip {
  opacity:1;
  transform:translate(-50%,0) scale(1);
  visibility:visible;
}
.move-slot:hover .move-button:not(:disabled),
.move-slot:focus-within .move-button:not(:disabled) {
  transform:translateY(-2px);
  border-color:#78a9d1;
  filter:brightness(1.12);
  box-shadow:inset 0 1px 0 #ffffff20,0 7px 15px #0008;
}
.move-tooltip-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding-bottom:7px;
  border-bottom:1px solid rgba(94,137,173,.28);
}
.move-tooltip-header strong {
  min-width:0;
  overflow:hidden;
  color:#fff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.02em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.move-tooltip-header span {
  flex:none;
  padding:2px 6px;
  color:#b9d8f1;
  border:1px solid rgba(91,139,180,.55);
  border-radius:3px;
  background:rgba(10,32,51,.72);
  font-size:7px;
  font-weight:900;
  text-transform:uppercase;
}
.move-tooltip p {
  margin:7px 0 9px;
  color:#9fb9cf;
  font-size:9px;
  font-weight:600;
  line-height:1.35;
}
.move-tooltip-stats {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:5px;
}
.move-tooltip-stats span {
  min-width:0;
  padding:5px 4px;
  text-align:center;
  border:1px solid rgba(73,115,150,.42);
  border-radius:4px;
  background:rgba(4,18,31,.68);
}
.move-tooltip-stats small,
.move-tooltip-stats b { display:block; }
.move-tooltip-stats small {
  color:#6f91ad;
  font-size:6px;
  font-weight:900;
  letter-spacing:.05em;
}
.move-tooltip-stats b {
  margin-top:2px;
  overflow:hidden;
  color:#eef7ff;
  font-size:8px;
  font-weight:900;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.move-tooltip>em {
  display:block;
  margin-top:7px;
  padding-top:7px;
  color:#f1bd68;
  border-top:1px solid rgba(94,137,173,.24);
  font-size:8px;
  font-style:normal;
  font-weight:900;
  text-align:center;
}
@media (max-width:760px), (hover:none) {
  .move-tooltip { display:none; }
}

/* v0.6.79 — Loja NPC alinhada ao layout visual do Depot */
.mark-shop-overlay {
  z-index: 76;
}
.mark-shop-tabs {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.mark-shop-quantity {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
}
.mark-shop-quantity.hidden {
  display: none;
}
.mark-shop-quantity label {
  display: grid;
  grid-template-columns: auto 66px;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: inherit;
  font: 700 10px Barlow, sans-serif;
  letter-spacing: 0;
}
.mark-shop-quantity input[type="number"] {
  width: 66px;
  height: 28px;
  padding: 0 6px;
  border: 1px solid #2d4b61;
  border-radius: 5px;
  background: #07131d;
  color: #e4f2fc;
  font: 700 10px Barlow, sans-serif;
  text-align: center;
}
.mark-shop-quantity input[type="range"] {
  width: 100%;
  margin: 0;
  accent-color: #5687ac;
}
.mark-shop-list {
  min-height: 260px;
}
.mark-shop-grid {
  align-items: stretch;
}
.mark-shop-item {
  margin: 0;
  color: #dce9f3;
}
.mark-shop-selectable,
.mark-shop-pokemon {
  cursor: pointer;
}
.mark-shop-item > .mark-shop-checkbox {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  display: grid;
  place-content: center;
  margin: 0;
  padding: 0;
  border: 1px solid #dce7ef;
  border-radius: 3px;
  background: #f7fbff;
  cursor: pointer;
  transition: background .12s, border-color .12s, box-shadow .12s;
}
.mark-shop-item > .mark-shop-checkbox::before {
  width: 8px;
  height: 4px;
  border-color: #17334a;
  border-style: solid;
  border-width: 0 0 2px 2px;
  content: '';
  transform: translateY(-1px) rotate(-45deg) scale(0);
  transition: transform .1s;
}
.mark-shop-item > .mark-shop-checkbox:checked::before {
  transform: translateY(-1px) rotate(-45deg) scale(1);
}
.mark-shop-item > .mark-shop-checkbox:hover:not(:disabled) {
  border-color: #fff;
  background: #fff;
  box-shadow: 0 0 0 2px #5687ac33;
}
.mark-shop-item > .mark-shop-checkbox:focus-visible {
  border-color: #5687ac;
  outline: 2px solid #78a9c9;
  outline-offset: 2px;
}
.mark-shop-item > .mark-shop-checkbox:disabled {
  border-color: #9aa7b0;
  background: #9aa7b0;
  cursor: not-allowed;
  opacity: .45;
}
.mark-shop-selectable.selected,
.mark-shop-pokemon.selected {
  border-color: #5687ac;
  box-shadow: inset 0 0 0 1px #5687ac33;
}
.mark-shop-pokemon {
  width: 100%;
  color: #dce9f3;
  font: inherit;
  text-align: left;
}
.mark-shop-pokemon.locked {
  cursor: not-allowed;
}
.mark-shop-price {
  flex: 0 0 auto;
  color: #9ed1f1;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}
.mark-shop-footer {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 8px;
  padding: 10px 14px;
  border-top: 1px solid #203548;
  border-bottom: 0;
}
.mark-shop-footer.hidden {
  display: none;
}
.mark-shop-outline,
.mark-shop-confirm {
  width: 100%;
}
.mark-shop-confirm:disabled {
  cursor: not-allowed;
  opacity: .45;
}
@media (max-width: 720px) {
  .mark-shop-quantity {
    grid-template-columns: 120px minmax(0, 1fr);
  }
  .mark-shop-footer {
    grid-template-columns: 120px minmax(0, 1fr);
  }
}

/* =========================================================
   v0.6.81 — Seleção de Pokémon no padrão visual do Depot
   Aplica o mesmo sistema visual no menu lateral da equipe
   e na lista de Pokémon dentro do painel.
   ========================================================= */

/* Menu lateral de seleção da equipe */
.battle-party-rail.team-bar-ui {
    --team-width: 292px;
    --team-height: auto;
    width: var(--team-width) !important;
    min-width: var(--team-width) !important;
    max-width: var(--team-width) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 0 12px !important;
    overflow: hidden !important;
    border: 1px solid #2d5f82 !important;
    border-radius: 9px !important;
    background: #091824 !important;
    box-shadow: 0 18px 45px #0009, inset 0 1px 0 #ffffff0a !important;
}

.battle-party-rail.team-bar-ui::after { display: none !important; }

.team-bar-header {
    position: relative !important;
    width: 100% !important;
    height: 72px !important;
    border-bottom: 1px solid #1d3a50 !important;
    background: #0a1925 !important;
}

.team-bar-heading {
    left: 14px !important;
    top: 50% !important;
    right: 45px !important;
    display: flex !important;
    min-width: 0 !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 1px !important;
    transform: translateY(-50%) !important;
}

.team-bar-heading > strong {
    color: #f2f7fb !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 18px !important;
    text-transform: none !important;
    text-shadow: none !important;
}

.team-bar-heading > span {
    margin-top: 2px !important;
    color: #6e8ca3 !important;
    font-size: 9px !important;
    font-weight: 700 !important;
    line-height: 12px !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
}

.team-bar-heading i { color: #487ca0 !important; }
.team-bar-divider { display: none !important; }

.team-minimize {
    top: 50% !important;
    right: 13px !important;
    width: 28px !important;
    height: 28px !important;
    border: 1px solid #28536f !important;
    border-radius: 6px !important;
    background: #0d2231 !important;
    color: #9cb8cb !important;
    transform: translateY(-50%) !important;
}
.team-minimize:hover,
.team-minimize:focus-visible {
    border-color: #4382ac !important;
    background: #123149 !important;
    color: #eef8ff !important;
}

.team-slot-item,
.battle-pokemon-card.team-slot-item,
.battle-party-empty.team-slot-item {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    overflow: hidden !important;
    border: 1px solid #1d3d53 !important;
    border-radius: 8px !important;
    background: #0b1c29 !important;
    box-shadow: inset 0 1px 0 #ffffff08 !important;
}

.battle-pokemon-card.team-slot-item {
    background: #0b1c29 !important;
    transition: border-color 120ms ease, background 120ms ease, transform 80ms ease !important;
}
.battle-pokemon-card.team-slot-item:hover {
    border-color: #3f7698 !important;
    background: #10283a !important;
    filter: none !important;
}
.battle-pokemon-card.team-slot-item.is-active {
    border-color: #4e8ab1 !important;
    background: #123149 !important;
    box-shadow: inset 3px 0 0 #65a6cf, inset 0 1px 0 #ffffff0c !important;
}

.team-sprite-frame,
.battle-pokemon-card .team-sprite-frame {
    width: 48px !important;
    height: 48px !important;
    padding: 3px !important;
    border: 1px solid #28516b !important;
    border-radius: 50% !important;
    background: radial-gradient(circle, #173850 0%, #0a1d2b 70%) !important;
}

.team-slot-top {
    min-width: 0 !important;
}
.team-slot-top strong {
    overflow: hidden !important;
    color: #dceaf3 !important;
    font-family: "Barlow", sans-serif !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 14px !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
}
.team-slot-top em {
    color: #6f93aa !important;
    font-family: "Barlow", sans-serif !important;
    font-size: 8px !important;
    font-style: normal !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
}

.team-status-bar {
    position: relative !important;
    height: 12px !important;
    overflow: hidden !important;
    border: 1px solid #173247 !important;
    border-radius: 4px !important;
    background: #07141e !important;
}
.team-status-bar i { opacity: .76 !important; }
.team-status-bar b {
    position: absolute !important;
    inset: 0 !important;
    display: grid !important;
    place-items: center !important;
    color: #c7d8e4 !important;
    font-family: "Barlow", sans-serif !important;
    font-size: 7px !important;
    font-weight: 800 !important;
    line-height: 10px !important;
    text-shadow: 0 1px 1px #000 !important;
}

.battle-party-index {
    left: auto !important;
    right: 9px !important;
    top: 8px !important;
    width: 20px !important;
    height: 18px !important;
    display: grid !important;
    place-items: center !important;
    border: 1px solid #244a63 !important;
    border-radius: 5px !important;
    background: #0a1a26 !important;
    color: #7899ae !important;
    font-size: 8px !important;
}
.battle-pokemon-card.team-slot-item::after { display: none !important; }

.battle-party-empty.team-slot-item {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    padding: 0 12px !important;
    border-style: dashed !important;
    background: #091722 !important;
    color: #58758a !important;
}
.battle-party-empty.team-slot-item .team-empty-index {
    position: static !important;
    width: 20px !important;
    height: 20px !important;
    display: grid !important;
    place-items: center !important;
    border: 1px solid #24465d !important;
    border-radius: 5px !important;
    background: #0b1c28 !important;
    color: #66869b !important;
}
.battle-party-empty.team-slot-item .team-empty-ball {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    width: 34px !important;
    height: 34px !important;
    flex: 0 0 34px !important;
    opacity: .42 !important;
}
.battle-party-empty.team-slot-item strong {
    position: static !important;
    color: #607e92 !important;
    font-size: 9px !important;
    font-weight: 800 !important;
    letter-spacing: .03em !important;
}

/* Lista de seleção no painel de Pokémon */
.drawer-view[data-view="pokemon"] .pokemon-summary {
    border: 1px solid #1d3d53 !important;
    border-radius: 8px !important;
    background: #0b1c29 !important;
    box-shadow: inset 0 1px 0 #ffffff08 !important;
}

.drawer-view[data-view="pokemon"] .party-list {
    gap: 6px !important;
    margin-top: 12px !important;
}

.drawer-view[data-view="pokemon"] .party-slot {
    min-height: 70px !important;
    padding: 9px 10px !important;
    border: 1px solid #1d3d53 !important;
    border-radius: 8px !important;
    background: #0b1c29 !important;
    box-shadow: inset 0 1px 0 #ffffff08 !important;
    transition: border-color 120ms ease, background 120ms ease !important;
}
.drawer-view[data-view="pokemon"] button.party-slot:hover {
    border-color: #3f7698 !important;
    background: #10283a !important;
}
.drawer-view[data-view="pokemon"] .party-slot.featured {
    border-color: #4e8ab1 !important;
    background: #123149 !important;
    box-shadow: inset 3px 0 0 #65a6cf, inset 0 1px 0 #ffffff0c !important;
}
.drawer-view[data-view="pokemon"] .party-sprite-wrap,
.drawer-view[data-view="pokemon"] .party-ball {
    width: 48px !important;
    height: 48px !important;
    flex: 0 0 48px !important;
    border: 1px solid #28516b !important;
    border-radius: 50% !important;
    background: radial-gradient(circle, #173850 0%, #0a1d2b 70%) !important;
}
.drawer-view[data-view="pokemon"] .party-slot-copy strong {
    color: #dceaf3 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
}
.drawer-view[data-view="pokemon"] .party-slot-copy small {
    margin-top: 3px !important;
    color: #6f8da2 !important;
    font-size: 8px !important;
    font-weight: 700 !important;
}
.drawer-view[data-view="pokemon"] .party-slot-copy em {
    color: #9cb4c5 !important;
    font-size: 8px !important;
}
.drawer-view[data-view="pokemon"] .party-mini-bar {
    height: 6px !important;
    margin-top: 6px !important;
    border-color: #173247 !important;
    background: #07141e !important;
}
.drawer-view[data-view="pokemon"] .slot-status {
    min-width: 48px !important;
    padding: 4px 6px !important;
    border: 1px solid #28536f !important;
    border-radius: 5px !important;
    background: #0a1a26 !important;
    color: #8faabd !important;
    font-size: 7px !important;
    font-weight: 800 !important;
    text-align: center !important;
}

@media (max-width: 760px) {
    .battle-party-rail.team-bar-ui {
        --team-width: 274px;
    }
}

/* =========================================================
   v0.6.82 — Correção das barras de HP e EXP da seleção
   ========================================================= */
.battle-party-rail.team-bar-ui .team-status-bars {
    align-items: stretch !important;
}

.battle-party-rail.team-bar-ui .team-status-bar {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 12px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    border: 1px solid #173247 !important;
    border-radius: 4px !important;
    background: #07141e !important;
}

.battle-party-rail.team-bar-ui .team-status-bar > i {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    display: block !important;
    height: 100% !important;
    margin: 0 !important;
    border-radius: 3px !important;
    background-image: none !important;
    background-size: auto !important;
    opacity: 1 !important;
    transition: width 180ms ease !important;
}

.battle-party-rail.team-bar-ui .team-status-bar.hp > i {
    background: linear-gradient(180deg, #58dc82 0%, #22a956 100%) !important;
    box-shadow: inset 0 1px 0 #ffffff42 !important;
}

.battle-party-rail.team-bar-ui .team-status-bar.state > i,
.battle-party-rail.team-bar-ui .team-status-bar.state > i.team-state-fill {
    background: linear-gradient(180deg, #56b9ee 0%, #267db8 100%) !important;
    box-shadow: inset 0 1px 0 #ffffff38 !important;
}

.battle-party-rail.team-bar-ui .team-status-bar > b,
.battle-party-rail.team-bar-ui #battle-hp-copy,
.battle-party-rail.team-bar-ui #battle-pokemon-exp {
    position: absolute !important;
    inset: 0 !important;
    z-index: 3 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 2px !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    color: #eef8ff !important;
    font-family: "Barlow", sans-serif !important;
    font-size: 7px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    text-align: center !important;
    white-space: nowrap !important;
    text-shadow: 0 1px 2px #000 !important;
    transform: none !important;
    pointer-events: none !important;
}

.battle-party-rail.team-bar-ui .battle-pokemon-card.defeated .team-status-bar.state > i {
    background: linear-gradient(180deg, #d24e65 0%, #a52e45 100%) !important;
}

/* =========================================================
   v0.6.83 — Correção do fundo cortando o 6º slot da equipe
   ========================================================= */
.battle-party-rail.team-bar-ui:not(.is-minimized) {
    box-sizing: border-box !important;
    height: auto !important;
    min-height: 522px !important;
    max-height: none !important;
    padding-bottom: 14px !important;
    overflow: hidden !important;
}

.battle-party-rail.team-bar-ui:not(.is-minimized) .team-slot-list {
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    height: auto !important;
    min-height: 431px !important;
    max-height: none !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    overflow: visible !important;
}

/* =========================================================
   v0.6.84 — Barra lateral dinâmica conforme o time atual
   ========================================================= */
.battle-party-rail.team-bar-ui:not(.is-minimized) {
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
}

.battle-party-rail.team-bar-ui:not(.is-minimized) .team-slot-list {
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
}

/* =========================================================
   v0.6.85 — Hierarquia do card e barras HP/EXP empilhadas
   ========================================================= */
.battle-party-rail.team-bar-ui .team-slot-top {
    min-width: 0 !important;
}

.battle-party-rail.team-bar-ui .team-slot-top strong {
    min-width: 0 !important;
    color: #eef7fc !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    line-height: 15px !important;
}

.battle-party-rail.team-bar-ui .team-slot-top em {
    flex: 0 0 auto !important;
    padding: 2px 5px !important;
    border: 1px solid #28516b !important;
    border-radius: 4px !important;
    background: #0a1a26 !important;
    color: #8eacc0 !important;
    font-size: 7px !important;
    line-height: 10px !important;
    letter-spacing: .03em !important;
}

.battle-party-rail.team-bar-ui .team-status-bar {
    border-radius: 4px !important;
}

/* =========================================================
   v0.6.86 — Remoção da numeração visual dos slots da equipe
   ========================================================= */
.battle-party-rail.team-bar-ui .battle-party-index {
    display: none !important;
}

/* =========================================================
   v0.6.90 — Pokeicons centralizados no menu da equipe
   ========================================================= */
.drawer-view[data-view="pokemon"] .party-sprite-wrap {
    display: grid !important;
    place-items: center !important;
    overflow: hidden !important;
}

.drawer-view[data-view="pokemon"] .party-sprite-wrap img.pokemon-menu-icon {
    display: block !important;
    width: 32px !important;
    height: 32px !important;
    max-width: 32px !important;
    max-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: contain !important;
    object-position: center !important;
    image-rendering: pixelated !important;
    transform: none !important;
}

.drawer-view[data-view="pokemon"] .party-sprite-wrap img.pokemon-menu-icon-fallback {
    width: 42px !important;
    height: 42px !important;
    max-width: 42px !important;
    max-height: 42px !important;
}

/* Centralização alfa compartilhada por todas as superfícies de Pokémon. */
.depot-pokemon-portrait,
.team-sprite-frame,
.drawer-view[data-view="pokemon"] .party-sprite-wrap,
.market-pokemon-sprite-frame,
.pokemon-ui-sprite-frame {
    position: relative;
    overflow: hidden;
}

.depot-pokemon-portrait img.pokemon-ui-sprite-centered,
.team-sprite-frame img.pokemon-ui-sprite-centered,
.drawer-view[data-view="pokemon"] .party-sprite-wrap img.pokemon-ui-sprite-centered,
.market-pokemon-sprite-frame img.pokemon-ui-sprite-centered,
.pokemon-ui-sprite-frame > img.pokemon-ui-sprite-centered {
    position: absolute !important;
    left: var(--pokemon-ui-sprite-left) !important;
    top: var(--pokemon-ui-sprite-top) !important;
    width: var(--pokemon-ui-sprite-width) !important;
    height: var(--pokemon-ui-sprite-height) !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    object-fit: fill !important;
    object-position: center !important;
    transform: none !important;
}

/* =========================================================
   Identidade visual Shiny e anúncio global de captura
   ========================================================= */
.battle-pokemon-card.team-slot-item.is-shiny,
.drawer-view[data-view="pokemon"] .party-slot.is-shiny,
.depot-pokemon-card.is-shiny,
.pokemon-detail-card.is-shiny,
.pokemon-evolution-panel.is-shiny {
    border-color: #c99b36 !important;
    box-shadow: inset 0 0 0 1px rgba(255, 222, 112, .12), 0 0 15px rgba(226, 169, 48, .14) !important;
}

.battle-pokemon-card.team-slot-item.is-shiny .team-slot-top strong,
.drawer-view[data-view="pokemon"] .party-slot.is-shiny .party-slot-copy strong,
.depot-pokemon-card.is-shiny .depot-pokemon-copy strong,
.pokemon-detail-card.is-shiny #detail-pokemon-name,
.pokemon-evolution-panel.is-shiny .pokemon-evolution-copy strong {
    color: #ffe18a !important;
    text-shadow: 0 0 8px rgba(239, 183, 53, .18);
}

.battle-pokemon-card.team-slot-item.is-shiny .team-sprite-frame,
.drawer-view[data-view="pokemon"] .party-slot.is-shiny .party-sprite-wrap,
.depot-pokemon-card.is-shiny .depot-pokemon-portrait {
    border-color: #a77d2c !important;
    background: radial-gradient(circle, #3d3520 0%, #151d24 72%) !important;
}

.target-card.shiny-target-active {
    display: block !important;
    border-color: #d0a03b !important;
    background: linear-gradient(180deg, rgba(67, 53, 25, .94), rgba(16, 25, 34, .96)) !important;
    box-shadow: 0 12px 34px rgba(0, 0, 0, .62), 0 0 18px rgba(234, 180, 48, .18) !important;
}
.target-card.shiny-target-active .target-content strong { color: #ffe18a; }
.target-card.shiny-target-active .target-hp-bar { border-color: #705622; }

.inventory-slot.has-item.is-shiny-stone,
.depot-item-card.is-shiny-stone {
    border-color: #c99b36 !important;
    background: linear-gradient(145deg, #352e1c, #101d29) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 225, 126, .12), 0 0 14px rgba(221, 165, 43, .15) !important;
}
.inventory-slot.has-item.is-shiny-stone > strong,
.depot-item-card.is-shiny-stone .depot-item-copy > strong { color: #ffe18a !important; }
.shiny-stone-badge {
    display: inline-flex;
    width: max-content;
    margin-top: 3px;
    padding: 2px 4px;
    border: 1px solid rgba(222, 174, 67, .58);
    border-radius: 4px;
    background: rgba(70, 52, 18, .82);
    color: #ffdc78;
    font-size: 6px;
    font-style: normal;
    font-weight: 900;
    letter-spacing: .08em;
}
.inventory-slot .shiny-stone-badge {
    position: absolute;
    z-index: 3;
    left: 4px;
    bottom: 4px;
    margin: 0;
}

.shiny-identity-symbol {
  display: inline-block;
  color: #f4c84f;
  font-family: "Segoe UI Symbol", sans-serif;
  font-size: inherit;
  font-variant-emoji: text;
  line-height: inherit;
  -webkit-text-stroke: 0 transparent;
  text-shadow: 0 0 2px rgba(255, 216, 92, .35);
  filter: none;
  animation: shiny-symbol-glint 3.6s ease-in-out infinite;
  transform-origin: center;
}
@keyframes shiny-symbol-glint {
  0%, 72%, 100% { color:#f4c84f; text-shadow:0 0 1px rgba(255,216,92,.24); }
  82% { color:#ffe58a; text-shadow:0 0 3px rgba(255,216,92,.5); }
}
@media (prefers-reduced-motion: reduce) {
  .shiny-identity-symbol { animation:none; }
}

/* Proteção autoritativa de Pokémon raros: a mesma ação no Time e Depot. */
.party-slot-entry {
  width: 100%;
  min-width: 0;
  position: relative;
  display: block;
}
.party-slot-entry > .party-slot { width: 100%; }
.party-slot-entry > .pokemon-trade-protection-button {
  position: absolute;
  right: 12px;
  bottom: 10px;
  z-index: 2;
}
.party-slot-heading {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 6px;
}
.party-slot-heading strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.party-slot-heading > b {
  flex: none;
  color: #6f8ca5;
  font-size: 6px;
  font-weight: 900;
  letter-spacing: .08em;
}
.party-slot-heading > i {
  flex: none;
  color: #8dc8ff;
  font-size: 6px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .08em;
}
.drawer-view[data-view="pokemon"] .party-slot-copy {
  padding-right: 38px;
}
.pokemon-trade-protection-button {
  width: 30px;
  min-width: 30px;
  height: 30px;
  padding: 6px;
  border: 1px solid #58738a;
  border-radius: 6px;
  background: #102536;
  color: #c6d9e7;
  cursor: pointer;
}
.pokemon-trade-protection-button svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pokemon-trade-protection-button.is-protected { color: #d9ba70; border-color: #725f3e; }
.pokemon-trade-protection-button.is-open { color: #8eb4ca; }
.pokemon-trade-protection-button:hover {
  border-color: #7ba0ba;
  background: #17344a;
  color: #f1f8fc;
}
.pokemon-trade-protection-button:focus-visible {
  outline: 2px solid #6ca2c6;
  outline-offset: 2px;
}
.depot-pokemon-actions {
  flex: 0 0 auto;
  display: grid;
  justify-items: stretch;
  gap: 5px;
}
.depot-pokemon-actions > button {
  min-width: 74px;
  height: 30px;
  border: 1px solid #477695;
  border-radius: 6px;
  background: linear-gradient(180deg, #17364e, #10283b);
  color: #d9efff;
  font: 800 9px Barlow, sans-serif;
  cursor: pointer;
}
.depot-pokemon-actions > .pokemon-trade-protection-button {
  width: 30px;
  min-width: 30px;
  height: 30px;
  justify-self: end;
  border-color: #58738a;
  background: #102536;
}

/* Slot 1 ativo, slot 2 em treinamento e organização autoritativa do Time. */
.team-slot-role {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 14px;
  padding: 1px 4px;
  border: 1px solid rgba(82, 143, 181, .48);
  border-radius: 4px;
  background: rgba(15, 48, 70, .8);
  color: #91c7e5;
  font: 900 6px/1 "Barlow", sans-serif;
  letter-spacing: .07em;
  white-space: nowrap;
}
.team-slot-role.training {
  border-color: rgba(97, 154, 127, .48);
  background: rgba(18, 57, 49, .78);
  color: #9cd7b6;
}
.team-slot-top strong { min-width: 0; }
.battle-party-rail.team-bar-ui .team-slot-role { padding-inline: 3px; font-size: 5px; }
.party-slot-heading .team-slot-role { min-height: 13px; }

.pokemon-swap-status {
  display: inline-flex;
  width: fit-content;
  margin-top: 5px;
  color: #86b9d8;
  font: 800 8px/1.25 "Barlow", sans-serif;
}
.pokemon-swap-status.hidden { display: none; }

.pokemon-team-order-actions {
  position: absolute;
  right: 48px;
  bottom: 10px;
  z-index: 3;
  display: inline-flex;
  gap: 3px;
}
.pokemon-team-order-actions button {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid #365d76;
  border-radius: 5px;
  background: #102536;
  color: #9ebdd0;
  font: 900 12px/1 sans-serif;
  cursor: pointer;
}
.pokemon-team-order-actions button:hover { border-color: #6491ad; background: #17364b; color: #edf8ff; }
.pokemon-team-order-actions button:focus-visible { outline: 2px solid #6ca2c6; outline-offset: 2px; }
.pokemon-team-drag-handle {
  position: absolute;
  right: 99px;
  bottom: 13px;
  z-index: 3;
  color: #6f91a7;
  font: 900 10px/1 sans-serif;
  letter-spacing: -2px;
  cursor: grab;
  user-select: none;
}
.pokemon-team-drag-handle:active { cursor: grabbing; }
.party-slot-entry.team-drop-target > .party-slot {
  border-color: #66a5ca !important;
  box-shadow: inset 0 0 0 1px rgba(102, 165, 202, .35) !important;
}
.drawer-view[data-view="pokemon"] .party-slot-entry.has-team-order .party-slot-copy {
  padding-right: 98px;
}
@media (max-width: 560px) {
  .pokemon-team-drag-handle { display: none; }
  .drawer-view[data-view="pokemon"] .party-slot-entry.has-team-order .party-slot-copy { padding-right: 88px; }
}
.pokemon-trade-protection-button:disabled { opacity: .55; cursor: not-allowed; }
.depot-pokemon-actions > button:disabled {
  border-color: #2b3c49;
  background: #16212a;
  color: #657683;
  cursor: not-allowed;
}
.pokemon-trade-unlock-overlay { z-index: 104; }
.pokemon-trade-unlock-dialog {
  width: min(430px, calc(100vw - 28px));
  padding: 18px;
  border: 1px solid #3b6480;
  border-radius: 9px;
  background: #0d1d29;
  box-shadow: 0 20px 55px #000c, inset 0 1px 0 #ffffff0d;
}
.pokemon-trade-unlock-dialog small {
  color: #67abc8;
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .1em;
}
.pokemon-trade-unlock-dialog h3 {
  margin: 5px 0 10px;
  color: #e5f0f6;
  font-size: 16px;
}
.pokemon-trade-unlock-dialog p {
  margin: 0;
  color: #9db3c1;
  font-size: 10px;
  line-height: 1.65;
}
.pokemon-trade-unlock-dialog p strong { color: #dcebf4; }
.pokemon-trade-unlock-dialog .held-remove-error { margin-top: 8px; color: #e58a9a; font-weight: 700; }
.pokemon-trade-unlock-dialog .held-remove-error:empty { display: none; }
.pokemon-trade-unlock-actions {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
  margin-top: 16px;
}
.pokemon-trade-unlock-actions button {
  min-width: 94px;
  min-height: 34px;
  border: 1px solid #385c73;
  border-radius: 6px;
  background: #112736;
  color: #b7ccd8;
  font: 800 9px Barlow, sans-serif;
  cursor: pointer;
}
.pokemon-trade-unlock-actions button.primary {
  border-color: #5c8aa8;
  background: #173b53;
  color: #f0f8fc;
}
.pokemon-trade-unlock-actions button:hover { background: #1a3a4e; }
.pokemon-trade-unlock-actions button:focus-visible { outline: 2px solid #70b5d1; outline-offset: 2px; }
.pokemon-trade-unlock-actions button:disabled { opacity: .55; cursor: wait; }

@media (max-width: 640px) {
  .depot-pokemon-actions { width: 100%; grid-column: 1 / -1; grid-template-columns: 1fr 1fr; }
  .depot-pokemon-actions > .pokemon-trade-protection-button { width: 30px; justify-self: start; }
}

/* Combat Rework — configuração autoritativa da rotação. */
.move-settings-button {
  color:#bcd8ed;
  border-color:#587a96;
  background:linear-gradient(180deg,#284b67,#132d42);
}
.move-settings-button > span { font-size:25px; line-height:1; text-shadow:0 2px 5px #0009; }
.move-settings-button:hover { color:#fff; }
.move-slot.rotation-blocked .move-button { border-color:#59636b; filter:saturate(.45); }
.move-slot.rotation-blocked .move-button::after {
  content:"";
  position:absolute;
  z-index:3;
  right:4px;
  bottom:4px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#84919a;
  box-shadow:0 0 0 2px #07141de6;
}

.skill-rotation-overlay {
  position:fixed;
  z-index:220;
  inset:0;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(1,8,14,.78);
  backdrop-filter:blur(5px);
}
.skill-rotation-overlay.hidden { display:none; }
.skill-rotation-window {
  width:min(620px,calc(100vw - 24px));
  max-height:min(760px,calc(100vh - 24px));
  display:grid;
  grid-template-rows:auto auto auto minmax(120px,1fr) auto;
  overflow:hidden;
  color:#dceaf4;
  border:1px solid #416d8e;
  border-radius:10px;
  background:linear-gradient(180deg,#102d45,#071927 72%);
  box-shadow:0 24px 70px #000d,inset 0 1px 0 #ffffff12;
}
.skill-rotation-header {
  position:relative;
  min-height:68px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 62px 12px 16px;
  border-bottom:1px solid #315874;
  background:linear-gradient(180deg,#193d59,#0d283e);
}
.skill-rotation-header > div,
.skill-rotation-header > div > span:last-child { display:flex; align-items:center; }
.skill-rotation-header > div { gap:11px; }
.skill-rotation-header > div > span:first-child { color:#9ec8e5; font-size:25px; }
.skill-rotation-header > div > span:last-child { align-items:flex-start; flex-direction:column; gap:1px; }
.skill-rotation-header small { color:#6f91aa; font-size:7px; font-weight:900; letter-spacing:.16em; }
.skill-rotation-header h2 { margin:0; color:#f2f8fc; font-size:18px; line-height:1.1; }
.skill-rotation-header .depot-close-button { right:14px; top:50%; transform:translateY(-50%); }
.skill-rotation-header .depot-close-button:hover { transform:translateY(-50%); }
.skill-rotation-intro {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 15px;
  border-bottom:1px solid #1c3e57;
  background:#0a2133;
}
.skill-rotation-intro > span { min-width:0; display:grid; gap:2px; }
.skill-rotation-intro strong { color:#e9f4fb; font-size:12px; }
.skill-rotation-intro strong em { margin-left:5px; color:#78a2bf; font-size:8px; font-style:normal; }
.skill-rotation-intro small { color:#7792a7; font-size:8px; }
.skill-rotation-intro > b {
  flex:none;
  padding:4px 7px;
  color:#7090a7;
  border:1px solid #294b62;
  border-radius:4px;
  font-size:7px;
  letter-spacing:.08em;
}
.skill-rotation-intro > b.dirty { color:#ffd36a; border-color:#8c6a29; background:#3a2a0f; }
.skill-rotation-error { min-height:0; padding:0 15px; color:#ff8f8f; font-size:9px; font-weight:800; }
.skill-rotation-error:not(:empty) { min-height:29px; display:flex; align-items:center; border-bottom:1px solid #5c2930; background:#32151b; }
.skill-rotation-list {
  display:grid;
  align-content:start;
  gap:6px;
  overflow:auto;
  margin:0;
  padding:10px 12px;
  list-style:none;
  scrollbar-color:#426b88 #071825;
  scrollbar-width:thin;
}
.skill-rotation-item {
  min-height:56px;
  display:grid;
  grid-template-columns:18px 27px 40px minmax(130px,1fr) auto 90px;
  align-items:center;
  gap:8px;
  padding:7px 8px;
  border:1px solid #315a78;
  border-radius:7px;
  background:linear-gradient(180deg,#15354f,#0c263b);
  box-shadow:inset 0 1px 0 #ffffff0d;
  transition:border-color .14s ease,opacity .14s ease,transform .14s ease;
}
.skill-rotation-item:hover { border-color:#5684a5; }
.skill-rotation-item.dragging { opacity:.45; transform:scale(.985); }
.skill-rotation-item.drag-over { border-color:#8cc3e7; box-shadow:0 0 0 1px #8cc3e755; }
.skill-rotation-item.blocked { border-color:#394956; background:linear-gradient(180deg,#202e39,#15232d); opacity:.72; }
.skill-rotation-item.level-locked { filter:saturate(.55); }
.skill-rotation-grip { color:#62839a; font-size:15px; cursor:grab; }
.skill-rotation-priority { color:#9fc5df; font-size:13px; text-align:center; }
.skill-rotation-item > img { width:36px; height:36px; object-fit:contain; image-rendering:pixelated; }
.skill-rotation-copy { min-width:0; display:grid; gap:3px; }
.skill-rotation-copy strong { overflow:hidden; color:#edf7fd; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.skill-rotation-copy small { color:#779ab3; font-size:7px; font-weight:800; letter-spacing:.04em; }
.skill-rotation-order-actions { display:flex; gap:3px; }
.skill-rotation-order-actions button {
  width:25px;
  height:25px;
  color:#a9c8dc;
  border:1px solid #3b627d;
  border-radius:4px;
  background:#0a2133;
  cursor:pointer;
}
.skill-rotation-order-actions button:hover:not(:disabled) { color:#fff; border-color:#75a5c5; }
.skill-rotation-order-actions button:disabled { opacity:.3; cursor:not-allowed; }
.skill-rotation-toggle {
  display:flex;
  align-items:center;
  gap:6px;
  padding:5px 7px;
  color:#7fe3a1;
  border:1px solid #2e7650;
  border-radius:5px;
  background:#0b3423;
  font-size:7px;
  font-weight:900;
  cursor:pointer;
}
.skill-rotation-toggle i { width:8px; height:8px; border-radius:50%; background:#53dc82; box-shadow:0 0 8px #53dc8277; }
.skill-rotation-toggle[aria-pressed="true"] { color:#9aaab5; border-color:#475865; background:#222f38; }
.skill-rotation-toggle[aria-pressed="true"] i { background:#6f7d87; box-shadow:none; }
.skill-rotation-toggle:focus-visible,
.skill-rotation-order-actions button:focus-visible,
.skill-rotation-footer button:focus-visible { outline:2px solid #8dc6eb; outline-offset:2px; }
.skill-rotation-footer {
  display:grid;
  grid-template-columns:auto 1fr auto auto;
  gap:8px;
  padding:11px 13px;
  border-top:1px solid #31516a;
  background:#091d2c;
}
.skill-rotation-footer button {
  min-height:34px;
  padding:7px 12px;
  border:1px solid #416983;
  border-radius:5px;
  font-size:8px;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
}
.skill-rotation-secondary { color:#b4cad9; background:#142d3e; }
.skill-rotation-primary { color:#fff; border-color:#31885a!important; background:linear-gradient(180deg,#238351,#155c38); }
.skill-rotation-footer button:hover:not(:disabled) { filter:brightness(1.12); }
.skill-rotation-footer button:disabled { opacity:.55; cursor:wait; }

@media (max-width:640px) {
  .skill-rotation-overlay { place-items:start center; overflow:auto; padding:8px; }
  .skill-rotation-window { width:100%; max-height:calc(100vh - 16px); }
  .skill-rotation-item { grid-template-columns:16px 22px 36px minmax(90px,1fr) 78px; gap:5px; }
  .skill-rotation-order-actions { display:none; }
  .skill-rotation-toggle { justify-content:center; }
  .skill-rotation-footer { grid-template-columns:1fr 1fr; }
  .skill-rotation-footer > span { display:none; }
}

#shiny-capture-announcement-host {
    display: contents;
    pointer-events: none;
}

.shiny-capture-announcement {
    position: fixed;
    z-index: 78;
    isolation: isolate;
    overflow: hidden;
    left: 50%;
    top: clamp(74px, 14vh, 150px);
    width: min(720px, calc(100vw - 32px));
    min-height: 126px;
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr) 142px;
    align-items: center;
    gap: 16px;
    padding: 14px 18px;
    pointer-events: none;
    opacity: 0;
    transform: translate3d(-50%, -18px, 0) scale(.965);
    filter: drop-shadow(0 18px 28px rgba(0, 0, 0, .38));
    border: 1px solid rgba(229, 179, 60, .8);
    border-radius: 11px;
    background:
        radial-gradient(circle at 17% 50%, rgba(214, 161, 42, .16), transparent 29%),
        radial-gradient(circle at 58% 0%, rgba(255, 221, 129, .07), transparent 40%),
        linear-gradient(105deg, rgba(7, 16, 25, .985), rgba(45, 36, 18, .975) 52%, rgba(7, 15, 24, .985));
    box-shadow: 0 24px 70px rgba(0, 0, 0, .72), 0 0 34px rgba(224, 168, 39, .18), inset 0 1px 0 rgba(255, 239, 180, .18);
    will-change: opacity, transform, filter;
    transition: opacity 280ms ease, transform 320ms cubic-bezier(.2, .8, .2, 1), filter 280ms ease;
}
.shiny-capture-announcement::before {
    content: "";
    position: absolute;
    z-index: 1;
    inset: 4px;
    pointer-events: none;
    opacity: .54;
    border: 1px solid rgba(255, 220, 117, .2);
    border-radius: 8px;
    box-shadow: inset 0 0 18px rgba(255, 209, 88, .045), 0 0 24px rgba(228, 174, 43, .1);
}
.shiny-capture-announcement::after {
    content: "";
    position: absolute;
    z-index: 2;
    top: -70%;
    left: -42%;
    width: 24%;
    height: 240%;
    pointer-events: none;
    opacity: 0;
    transform: translate3d(0, 0, 0) rotate(18deg);
    background: linear-gradient(90deg, transparent, rgba(255, 239, 183, .15), rgba(255, 255, 255, .3), rgba(255, 225, 132, .12), transparent);
    filter: blur(1px);
}
.shiny-capture-announcement.is-visible {
    opacity: 1;
    transform: translate3d(-50%, 0, 0) scale(1);
    animation:
        shiny-announcement-arrive 480ms cubic-bezier(.16, .78, .24, 1) both,
        shiny-announcement-aura 3.2s ease-in-out 520ms infinite;
}
.shiny-capture-announcement.is-visible::before {
    animation: shiny-announcement-border 2.6s ease-in-out 420ms infinite;
}
.shiny-capture-announcement.is-visible::after {
    animation: shiny-announcement-shine 1.05s cubic-bezier(.24, .65, .36, 1) 280ms 1 both;
}
.shiny-capture-announcement.is-leaving {
    opacity: 0;
    transform: translate3d(-50%, -9px, 0) scale(.975);
    filter: drop-shadow(0 8px 12px rgba(0, 0, 0, 0));
}
.shiny-announcement-portrait {
    position: relative;
    z-index: 3;
    width: 96px;
    height: 96px;
    display: grid;
    place-items: center;
    border: 1px solid #9c772b;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(105, 83, 31, .76), rgba(15, 25, 34, .94) 70%);
    box-shadow: 0 0 24px rgba(236, 184, 52, .26), inset 0 0 17px rgba(255, 225, 128, .1);
    will-change: transform, filter;
}
.shiny-announcement-portrait::before,
.shiny-announcement-portrait::after {
    position: absolute;
    z-index: 4;
    pointer-events: none;
    color: #ffe59a;
    line-height: 1;
    text-shadow: 0 0 7px rgba(255, 207, 80, .9);
}
.shiny-announcement-portrait::before {
    content: "✦";
    top: 3px;
    right: -7px;
    font-size: 10px;
}
.shiny-announcement-portrait::after {
    content: "✧";
    bottom: 8px;
    left: -5px;
    font-size: 8px;
}
.shiny-announcement-portrait img {
    position: relative;
    z-index: 2;
    width: 78px;
    height: 78px;
    object-fit: contain;
    image-rendering: pixelated;
    filter: drop-shadow(0 7px 6px rgba(0, 0, 0, .58)) drop-shadow(0 0 8px rgba(255, 206, 75, .22));
    will-change: opacity, transform;
}
.shiny-announcement-copy,
.shiny-announcement-meta { position: relative; z-index: 3; min-width: 0; }
.shiny-announcement-copy { display: grid; gap: 5px; }
.shiny-announcement-copy::after {
    content: "·";
    position: absolute;
    top: -7px;
    right: 4%;
    pointer-events: none;
    color: #ffe8a8;
    font-size: 18px;
    line-height: 1;
    text-shadow: 0 0 8px rgba(255, 205, 77, .82);
}
.shiny-announcement-copy > small {
    width: max-content;
    color: #ffd96e;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .15em;
    text-shadow: 0 0 11px rgba(240, 182, 46, .4);
    will-change: opacity, filter;
}
.shiny-announcement-copy > strong {
    color: #fffaf0;
    font-size: clamp(15px, 2vw, 20px);
    font-weight: 750;
    line-height: 1.2;
    letter-spacing: -.015em;
    text-shadow: 0 2px 9px rgba(0, 0, 0, .52);
}
.shiny-announcement-copy > span { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.shiny-announcement-copy b {
    color: #fff0b7;
    font-size: 14px;
    font-weight: 900;
    letter-spacing: .015em;
    text-shadow: 0 0 11px rgba(242, 184, 45, .38);
}
.shiny-announcement-copy i { color: #96adba; font-size: 9px; font-style: normal; }
.shiny-announcement-meta {
    display: grid;
    gap: 3px;
    padding-left: 14px;
    border-left: 1px solid rgba(211, 165, 57, .28);
}
.shiny-announcement-meta small { color: #7f98aa; font-size: 7px; font-weight: 900; letter-spacing: .14em; }
.shiny-announcement-meta strong { overflow: hidden; color: #f7d984; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; text-shadow: 0 0 8px rgba(225, 166, 40, .24); }
.shiny-announcement-meta em { color: #849cab; font-size: 8px; font-style: normal; }

.shiny-capture-announcement.is-visible .shiny-announcement-portrait {
    animation: shiny-announcement-portrait-aura 2.7s ease-in-out 420ms infinite;
}
.shiny-capture-announcement.is-visible .shiny-announcement-portrait img {
    animation: shiny-announcement-sprite 540ms cubic-bezier(.18, .74, .28, 1) 60ms both;
}
.shiny-capture-announcement.is-visible .shiny-announcement-portrait::before {
    animation: shiny-announcement-particle-one 2.8s ease-in-out 480ms infinite;
}
.shiny-capture-announcement.is-visible .shiny-announcement-portrait::after {
    animation: shiny-announcement-particle-two 3.3s ease-in-out 900ms infinite;
}
.shiny-capture-announcement.is-visible .shiny-announcement-copy::after {
    animation: shiny-announcement-particle-three 3.1s ease-in-out 720ms infinite;
}
.shiny-capture-announcement.is-visible .shiny-announcement-copy > small {
    animation: shiny-announcement-title-aura 2.5s ease-in-out 360ms infinite;
}

@keyframes shiny-announcement-arrive {
    0% { opacity: 0; transform: translate3d(-50%, -17px, 0) scale(.955); }
    62% { opacity: 1; transform: translate3d(-50%, 2px, 0) scale(1.008); }
    100% { opacity: 1; transform: translate3d(-50%, 0, 0) scale(1); }
}
@keyframes shiny-announcement-aura {
    0%, 100% { filter: drop-shadow(0 18px 28px rgba(0, 0, 0, .38)) drop-shadow(0 0 8px rgba(222, 166, 39, .09)); }
    50% { filter: drop-shadow(0 18px 28px rgba(0, 0, 0, .38)) drop-shadow(0 0 17px rgba(240, 188, 57, .2)); }
}
@keyframes shiny-announcement-border {
    0%, 100% { opacity: .52; transform: scale(.999); }
    50% { opacity: .92; transform: scale(1); }
}
@keyframes shiny-announcement-shine {
    0% { opacity: 0; transform: translate3d(0, 0, 0) rotate(18deg); }
    18% { opacity: .75; }
    78% { opacity: .34; }
    100% { opacity: 0; transform: translate3d(590%, 0, 0) rotate(18deg); }
}
@keyframes shiny-announcement-portrait-aura {
    0%, 100% { transform: scale(1); filter: drop-shadow(0 0 7px rgba(238, 183, 46, .18)); }
    50% { transform: scale(1.012); filter: drop-shadow(0 0 14px rgba(255, 207, 74, .34)); }
}
@keyframes shiny-announcement-sprite {
    0% { opacity: 0; transform: translate3d(0, 3px, 0) scale(.88); }
    70% { opacity: 1; transform: translate3d(0, -1px, 0) scale(1.045); }
    100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}
@keyframes shiny-announcement-title-aura {
    0%, 100% { opacity: .86; filter: drop-shadow(0 0 2px rgba(245, 191, 58, .16)); }
    50% { opacity: 1; filter: drop-shadow(0 0 6px rgba(255, 213, 102, .4)); }
}
@keyframes shiny-announcement-particle-one {
    0%, 100% { opacity: .2; transform: translate3d(0, 4px, 0) scale(.72); }
    45% { opacity: .95; transform: translate3d(3px, -5px, 0) scale(1); }
}
@keyframes shiny-announcement-particle-two {
    0%, 100% { opacity: .15; transform: translate3d(0, 3px, 0) scale(.72); }
    55% { opacity: .78; transform: translate3d(-3px, -6px, 0) scale(1.05); }
}
@keyframes shiny-announcement-particle-three {
    0%, 100% { opacity: .1; transform: translate3d(0, 5px, 0) scale(.6); }
    50% { opacity: .7; transform: translate3d(-5px, -7px, 0) scale(1); }
}

@media (max-width: 680px) {
    .shiny-capture-announcement {
        top: 70px;
        grid-template-columns: 72px minmax(0, 1fr);
        min-height: 100px;
        gap: 11px;
        padding: 11px 13px;
    }
    .shiny-announcement-portrait { width: 68px; height: 68px; }
    .shiny-announcement-portrait img { width: 58px; height: 58px; }
    .shiny-announcement-meta { display: none; }
    .shiny-announcement-copy > small { font-size: 8px; }
    .shiny-announcement-copy > strong { font-size: 14px; }
    .shiny-announcement-copy b { font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
    .shiny-capture-announcement {
        animation: none !important;
        filter: none;
        transition: opacity 160ms ease !important;
        transform: translate3d(-50%, 0, 0) scale(1) !important;
    }
    .shiny-capture-announcement.is-visible,
    .shiny-capture-announcement.is-leaving { transform: translate3d(-50%, 0, 0) scale(1) !important; }
    .shiny-capture-announcement::before,
    .shiny-announcement-portrait,
    .shiny-announcement-portrait img,
    .shiny-announcement-copy > small { animation: none !important; }
    .shiny-capture-announcement::after,
    .shiny-announcement-portrait::before,
    .shiny-announcement-portrait::after,
    .shiny-announcement-copy::after { display: none; }
}

/* Developer Console v1 */
.developer-console-button > span {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: #8fd8ff;
    font: 900 10px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
    text-shadow: 0 0 8px rgba(70, 190, 255, .42);
}

.mainbar-svg-icon {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    color: #91d7f5;
    pointer-events: none;
}
.mainbar-svg-icon svg {
    width: 31px;
    height: 31px;
    overflow: visible;
    fill: none;
    stroke: #d2e9f5;
    stroke-width: 1.45;
    stroke-linecap: round;
    stroke-linejoin: round;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .62));
}
.mainbar-button:hover .mainbar-svg-icon,
.mainbar-button:focus-visible .mainbar-svg-icon { filter: brightness(1.12) drop-shadow(0 0 3px rgba(255, 204, 93, .2)); }

.pokemon-addon-window.settings-window {
    position: relative;
    width: min(580px, calc(100vw - 28px));
    height: auto;
    max-height: calc(100vh - 28px);
    grid-template-rows: auto minmax(0, auto);
    border-color: #365a77;
    border-radius: 10px;
    background: linear-gradient(180deg, #101d2a 0%, #0a141f 100%);
    box-shadow: 0 24px 64px #000b, inset 0 1px 0 #ffffff10;
}
.pokemon-addon-window.settings-window > header { min-height: 58px; padding: 9px 52px 9px 15px; border-bottom-color: #263d51; background: #0c1722; }
.pokemon-addon-window.settings-window > header small { font-size: 8px; }
.pokemon-addon-window.settings-window > header h2 { margin-top: 2px; font-size: 17px; }
.pokemon-addon-window.settings-window > header .depot-close-button { right: 12px; }
.settings-layout { min-height: 0; max-height: calc(100vh - 86px); display: grid; grid-template-rows: 34px minmax(0, auto) auto; overflow: hidden; }
.settings-navigation { min-height: 0; display: flex; align-items: stretch; gap: 2px; padding: 4px 12px 0; border-bottom: 1px solid #263d51; background: #08141f; }
.settings-navigation button { min-width: 78px; min-height: 29px; padding: 0 11px; color: #7998aa; border: 0; border-bottom: 2px solid transparent; border-radius: var(--radius-4) var(--radius-4) 0 0; background: transparent; font: 900 8px Barlow, sans-serif; letter-spacing: .08em; text-align: center; cursor: pointer; }
.settings-navigation button:hover,.settings-navigation button:focus-visible { color: #dbeaf2; background: #102637; outline: none; }
.settings-navigation button.is-active { color: #eaf7fd; border-bottom-color: #62bde2; background: linear-gradient(180deg,#15364a99,#15364a); box-shadow: inset 0 1px #ffffff0c; }
.settings-content { min-height: 0; max-height: calc(100vh - 164px); padding: 13px 16px 10px; overflow-y: auto; scrollbar-color: #355b72 #081722; scrollbar-width: thin; }
.settings-section {
    display: grid;
    align-content: start;
    gap: 0;
}
.settings-section[hidden] { display: none; }
.settings-section > header { margin-bottom: 9px; }
.settings-section > header small { color: #6ab6d8; font-size: 7px; font-weight: 900; letter-spacing: .13em; }
.settings-section > header h3 { margin: 2px 0 0; color: #e6f4ff; font-size: 14px; letter-spacing: .04em; }
.settings-option {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    min-height: 48px;
    padding: 6px 2px;
    border: 0;
    border-bottom: 1px solid #263f52;
    border-radius: 0;
    background: transparent;
    cursor: pointer;
    transition: border-color 120ms ease, background 120ms ease;
}
.settings-option:last-child { border-bottom: 0; }
.settings-option:hover { border-color: #365a70; background: linear-gradient(90deg,#10253680,transparent); }
.settings-option > span { display: grid; gap: 2px; min-width: 0; }
.settings-option strong { color: #e6f4ff; font-size: 11px; }
.settings-option small { color: #8eabbc; font-size: 9px; line-height: 1.3; }
.settings-option input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.settings-toggle {
    position: relative;
    width: 42px;
    height: 22px;
    border: 1px solid #42647a;
    border-radius: 999px;
    background: #071722;
    box-shadow: inset 0 2px 5px #0007;
    transition: border-color 140ms ease, background 140ms ease, box-shadow 140ms ease;
}
.settings-toggle b {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #7894a4;
    transition: transform 140ms ease, background 140ms ease;
}
.settings-option input:checked + .settings-toggle { border-color: #4ba4c9; background: #15506b; box-shadow: inset 0 1px 3px #001c, 0 0 8px #39a7d02e; }
.settings-option input:checked + .settings-toggle b { transform: translateX(20px); background: #dff8ff; }
.settings-option input:focus-visible + .settings-toggle { outline: 2px solid #82d7f5; outline-offset: 3px; }
.settings-account-action { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 14px; min-height: 56px; padding: 7px 2px; border: 0; border-top: 1px solid #49303b; border-bottom: 1px solid #49303b; border-radius: 0; background: transparent; }
.settings-account-action > span { display: grid; gap: 2px; }
.settings-account-action strong { color: #f1dce3; font-size: 11px; }
.settings-account-action small { color: #a98793; font-size: 9px; }
.settings-danger-button { min-height: 34px; padding: 0 14px; color: #f2bdc9; border: 1px solid #824a5c; border-radius: var(--radius-6); background: #3b1d2a; font: 900 8px Barlow,sans-serif; letter-spacing: .06em; cursor: pointer; }
.settings-danger-button:hover,.settings-danger-button:focus-visible { color: #fff0f4; border-color: #aa6074; background: #502434; outline: 2px solid #b7627866; outline-offset: 2px; }
.settings-footer { display: flex; align-items: center; justify-content: flex-start; min-height: 45px; padding: 7px 16px; border-top: 1px solid #263d51; background: #0c1722; }
.settings-footer .settings-restore { min-height: 30px; padding: 0 11px; color: #a8c8e7; border-color: #365f81; font: 900 7px Barlow,sans-serif; letter-spacing: .08em; cursor: pointer; }
.settings-footer .settings-restore:hover,.settings-footer .settings-restore:focus-visible { color: #e7f6ff; border-color: #5685aa; filter: brightness(1.08); outline: 2px solid #68c9ee66; outline-offset: 2px; }
.settings-confirmation { position: absolute; z-index: 8; inset: 0; display: grid; place-items: center; padding: 18px; background: #020810d9; }
.settings-confirmation.hidden { display: none; }
.settings-confirmation > section { width: min(410px,100%); padding: 18px; border: 1px solid #3b6480; border-radius: 9px; background: #0d1d29; box-shadow: 0 20px 55px #000c; }
.settings-confirmation small { color: #67abc8; font-size: 7px; font-weight: 900; letter-spacing: .1em; }
.settings-confirmation h3 { margin: 5px 0 8px; color: #e5f0f6; font-size: 16px; }
.settings-confirmation p { min-height: 36px; margin: 0; color: #9db3c1; font-size: 10px; line-height: 1.5; }
.settings-confirmation div { display: flex; justify-content: flex-end; gap: 7px; margin-top: 14px; }
.settings-confirmation div > button:first-child { min-height: 34px; padding: 0 14px; color: #a9c0cd; border: 1px solid #355c75; border-radius: var(--radius-6); background: #122c3e; font: 900 8px Barlow,sans-serif; cursor: pointer; }
.game-shell.settings-hide-combat-log .mastery-battle-log { display: none; }
.game-shell.settings-hide-damage-numbers .mastery-battle-fighter:not(.is-healing) .mastery-battle-damage,
.game-shell.settings-hide-healing-numbers .mastery-battle-fighter.is-healing .mastery-battle-damage { display: none; }
.game-shell.settings-hide-critical-feedback .gym-battle-log-flags .is-critical,
.game-shell.settings-hide-effectiveness-feedback .gym-battle-log-flags .is-effective,
.game-shell.settings-hide-effectiveness-feedback .gym-battle-log-flags .is-resisted { display: none; }
@media (max-width: 620px) {
    .pokemon-addon-window.settings-window { width: calc(100vw - 20px); height: auto; max-height: calc(100vh - 20px); }
    .settings-layout { max-height: calc(100vh - 78px); grid-template-rows: 34px minmax(0,auto) auto; }
    .settings-navigation { padding-inline: 6px; }
    .settings-navigation button { min-width: 0; flex: 1; padding-inline: 4px; }
    .settings-content { max-height: calc(100vh - 157px); padding: 11px 12px 8px; }
    .settings-option { gap: 10px; padding-inline: 10px; }
    .settings-account-action { grid-template-columns: 1fr; }
    .settings-footer { padding-inline: 12px; }
}

.developer-console-overlay {
    position: fixed;
    inset: 0;
    z-index: 260;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(3, 8, 13, .76);
    backdrop-filter: blur(5px);
}
.developer-console-overlay.hidden,
.developer-console-overlay[aria-hidden="true"] {
    display: none !important;
    pointer-events: none !important;
}
.developer-console-button.hidden { display: none !important; }

.developer-console-window {
    position: relative;
    display: grid;
    grid-template-rows: auto auto auto minmax(0, 1fr);
    width: min(1120px, calc(100vw - 40px));
    height: min(760px, calc(100vh - 40px));
    overflow: hidden;
    border: 1px solid rgba(92, 170, 208, .36);
    border-radius: 12px;
    background: linear-gradient(160deg, rgba(18, 35, 47, .98), rgba(7, 17, 25, .99) 48%, rgba(8, 15, 23, .99));
    box-shadow: 0 28px 80px rgba(0, 0, 0, .62), inset 0 1px rgba(255, 255, 255, .04);
    color: #dcecf5;
}

.developer-console-header {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 74px;
    padding: 13px 64px 13px 18px;
    border-bottom: 1px solid rgba(107, 174, 207, .16);
    background: radial-gradient(circle at 10% 0, rgba(53, 174, 221, .12), transparent 42%);
}
.developer-console-close-button {
    z-index: 4;
    top: 13px;
    right: 16px;
    width: 36px;
    height: 36px;
    transform: none;
}
.developer-console-close-button:hover { transform: none; }
.developer-console-header > div { display: flex; align-items: center; gap: 12px; }
.developer-console-header > div > span:first-child {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(105, 199, 241, .3);
    border-radius: 9px;
    background: rgba(34, 125, 167, .13);
    color: #87ddff;
    font: 900 12px ui-monospace, SFMono-Regular, Consolas, monospace;
}
.developer-console-header small { display: block; color: #69bddd; font-size: 8px; font-weight: 900; letter-spacing: .2em; }
.developer-console-header h2 { margin: 3px 0 0; color: #f1f8fb; font-size: 20px; letter-spacing: .02em; }

.developer-console-tabs {
    display: flex;
    gap: 4px;
    overflow-x: auto;
    padding: 8px 12px;
    border-bottom: 1px solid rgba(107, 174, 207, .14);
    scrollbar-width: thin;
    scrollbar-color: #2e6983 #0a1720;
}
.developer-console-tabs button,
.admin-toolbar button,
.admin-confirm-panel button {
    border: 1px solid rgba(103, 168, 199, .2);
    border-radius: 6px;
    background: rgba(15, 41, 55, .72);
    color: #8eaebb;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;
    cursor: pointer;
}
.developer-console-tabs button { flex: 0 0 auto; padding: 9px 12px; }
.developer-console-tabs button:hover,
.developer-console-tabs button:focus-visible,
.admin-toolbar button:hover,
.admin-toolbar button:focus-visible { border-color: rgba(110, 211, 249, .54); color: #d9f4ff; outline: none; }
.developer-console-tabs button.active { border-color: #4da6ca; background: linear-gradient(#247da3, #155777); color: #fff; box-shadow: 0 0 14px rgba(52, 168, 216, .18); }

.developer-console-status {
    min-height: 30px;
    padding: 8px 17px;
    border-bottom: 1px solid rgba(107, 174, 207, .12);
    background: rgba(5, 14, 21, .54);
    color: #7ec8e4;
    font-size: 10px;
}
.developer-console-status.error { color: #ff9e9e; }
.developer-console-content { min-height: 0; overflow: hidden; }
.developer-console-view { display: none; height: 100%; overflow: auto; padding: 16px; scrollbar-width: thin; scrollbar-color: #2e6983 #0a1720; }
.developer-console-view.active { display: block; }

.admin-dashboard-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.admin-dashboard-grid article {
    min-height: 112px;
    padding: 17px;
    border: 1px solid rgba(91, 166, 199, .18);
    border-radius: 9px;
    background: linear-gradient(145deg, rgba(26, 59, 76, .46), rgba(10, 27, 38, .76));
    box-shadow: inset 0 1px rgba(255, 255, 255, .025);
}
.admin-dashboard-grid small { display: block; color: #6e9daf; font-size: 9px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.admin-dashboard-grid strong { display: block; margin-top: 18px; color: #f0fbff; font-size: 25px; }

.admin-toolbar { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.admin-toolbar input { flex: 1; }
.admin-toolbar button { min-height: 36px; padding: 0 14px; }
.admin-player-layout { display: grid; grid-template-columns: minmax(240px, .72fr) minmax(0, 1.6fr); gap: 12px; min-height: 0; }
.admin-player-results { display: grid; align-content: start; gap: 6px; }
.admin-player-results > button {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 3px 10px;
    padding: 11px;
    border: 1px solid rgba(100, 164, 192, .16);
    border-radius: 7px;
    background: rgba(8, 24, 34, .76);
    color: #b9d2dc;
    text-align: left;
    cursor: pointer;
}
.admin-player-results > button:hover,
.admin-player-results > button.active { border-color: rgba(93, 200, 239, .48); background: rgba(22, 67, 87, .72); }
.admin-player-results strong { color: #effaff; font-size: 12px; }
.admin-player-results small { overflow: hidden; color: #668b9a; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.admin-player-results span { grid-row: 1 / 3; grid-column: 2; align-self: center; color: #71848c; font-size: 7px; font-weight: 900; }
.admin-player-results span.online { color: #67dfae; }

.admin-player-detail {
    padding: 15px;
    border: 1px solid rgba(100, 164, 192, .16);
    border-radius: 8px;
    background: rgba(7, 20, 29, .7);
}
.admin-player-detail > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.admin-player-detail > header small { display: block; color: #648b9e; font-size: 8px; font-weight: 900; letter-spacing: .1em; }
.admin-player-detail > header strong { display: block; margin-top: 3px; color: #f0f9fd; font-size: 18px; }
.admin-player-detail > header i { color: #7f929a; font-size: 8px; font-style: normal; font-weight: 900; }
.admin-player-detail > header i.online { color: #62dba9; }
.admin-player-detail dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 14px 0 7px; }
.admin-player-detail dl div { padding: 8px; border-radius: 5px; background: rgba(29, 62, 76, .35); }
.admin-player-detail dt { color: #688d9e; font-size: 7px; font-weight: 900; text-transform: uppercase; }
.admin-player-detail dd { margin: 3px 0 0; color: #dcebf1; font-size: 10px; }
.admin-player-email { margin: 0; color: #7294a3; font-size: 9px; }
.admin-player-detail section { margin-top: 14px; }
.admin-player-detail h3 { margin: 0 0 7px; color: #76b9d3; font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.admin-player-detail ul { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.admin-player-detail li { display: flex; align-items: center; justify-content: space-between; min-height: 26px; padding: 5px 8px; border-radius: 4px; background: rgba(26, 52, 65, .34); color: #c7dbe3; font-size: 10px; }
.admin-player-detail li small,
.admin-player-detail li b { color: #7295a3; font-size: 8px; }
.admin-player-detail li.empty { color: #637c87; font-style: italic; }

.admin-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; max-width: 760px; margin: 0 auto; }
.admin-form label { display: grid; gap: 6px; color: #76a7ba; font-size: 8px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.admin-form-wide { grid-column: 1 / -1; }
.admin-form input,
.admin-form select,
.admin-form textarea,
.admin-toolbar input {
    box-sizing: border-box;
    width: 100%;
    min-height: 36px;
    border: 1px solid rgba(99, 161, 188, .24);
    border-radius: 6px;
    outline: none;
    background: rgba(4, 15, 22, .76);
    color: #e3f2f7;
    font: 500 11px Inter, system-ui, sans-serif;
}
.admin-form input,
.admin-form select,
.admin-toolbar input { padding: 0 10px; }
.admin-form textarea { min-height: 70px; resize: vertical; padding: 9px 10px; }
.admin-form input:focus,
.admin-form select:focus,
.admin-form textarea:focus,
.admin-toolbar input:focus { border-color: #4ca9cf; box-shadow: 0 0 0 2px rgba(54, 168, 211, .12); }
.admin-form input[readonly] { color: #7c9aa7; cursor: not-allowed; }
.admin-primary {
    min-height: 38px;
    border: 1px solid #4bb2d7 !important;
    border-radius: 6px;
    background: linear-gradient(#258db4, #17617e) !important;
    color: #fff !important;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .1em;
    cursor: pointer;
}
.admin-primary:hover { filter: brightness(1.12); }
.admin-empty { padding: 28px 14px; color: #658390; font-size: 10px; text-align: center; }

.admin-legacy-xp-repair {
    display: grid;
    width: min(760px, 100%);
    gap: 12px;
    margin: 18px auto 0;
    padding: 14px;
    border: 1px solid rgba(100, 164, 192, .22);
    border-radius: 8px;
    background: rgba(8, 24, 34, .7);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .025);
}
.admin-legacy-xp-repair > header { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.admin-legacy-xp-repair > header small { color: #67badb; font-size: 7px; font-weight: 900; letter-spacing: .12em; }
.admin-legacy-xp-repair > header h3 { margin: 3px 0 0; color: #dcecf3; font-size: 12px; }
.admin-legacy-xp-repair > header > span { color: #77a3b4; font-size: 8px; font-weight: 900; letter-spacing: .08em; }
.admin-legacy-xp-repair > p { margin: -4px 0 0; color: #7895a1; font-size: 9px; line-height: 1.45; }
.admin-legacy-xp-form { width: 100%; max-width: none; margin: 0; }
.admin-legacy-xp-form > button:not(.admin-primary) {
    min-height: 38px;
    border: 1px solid rgba(83, 159, 191, .35);
    border-radius: 6px;
    background: #102d3b;
    color: #a9d9e9;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;
    cursor: pointer;
}
.admin-legacy-xp-form button:disabled { opacity: .42; cursor: not-allowed; filter: saturate(.5); }
.admin-legacy-xp-repair pre {
    min-height: 118px;
    margin: 0;
    padding: 12px 13px;
    overflow: auto;
    border: 1px solid rgba(99, 161, 188, .22);
    border-radius: 7px;
    background: rgba(3, 12, 18, .86);
    color: #c9e8f4;
    font: 600 10px/1.6 ui-monospace, SFMono-Regular, Consolas, monospace;
    white-space: pre-wrap;
}

@media (max-width: 640px) {
    .admin-legacy-xp-repair > header { align-items: flex-start; flex-direction: column; }
}

.admin-trainer-layout { display: grid; gap: 12px; width: min(760px, 100%); margin: 0 auto; }
.admin-trainer-form { width: 100%; max-width: none; }
.admin-trainer-form input { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.admin-trainer-help {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    padding: 12px;
    border: 1px solid rgba(100, 164, 192, .16);
    border-radius: 7px;
    background: rgba(8, 24, 34, .64);
}
.admin-trainer-help strong { grid-column: 1 / -1; color: #76a7ba; font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.admin-trainer-command-list { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.admin-trainer-help code { padding: 7px 9px; border-radius: 5px; background: rgba(4, 15, 22, .72); color: #a8d7e9; font-size: 10px; }
.admin-trainer-output {
    min-height: 96px;
    margin: 0;
    padding: 13px;
    overflow: auto;
    border: 1px solid rgba(99, 161, 188, .24);
    border-radius: 7px;
    background: rgba(3, 12, 18, .86);
    color: #c9e8f4;
    font: 600 11px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace;
    white-space: pre-wrap;
}

.admin-audit-list { display: grid; gap: 7px; }
.admin-audit-list article { padding: 11px 13px; border: 1px solid rgba(92, 154, 180, .16); border-left: 3px solid #4a849a; border-radius: 6px; background: rgba(7, 21, 29, .72); }
.admin-audit-list article.result-success { border-left-color: #46c68f; }
.admin-audit-list article.result-denied,
.admin-audit-list article.result-rejected,
.admin-audit-list article.result-error { border-left-color: #e36a70; }
.admin-audit-list header { display: flex; justify-content: space-between; gap: 10px; }
.admin-audit-list strong { color: #dcecf3; font-size: 10px; }
.admin-audit-list header span { color: #7ea1af; font-size: 7px; font-weight: 900; }
.admin-audit-list p { margin: 6px 0; color: #a8c0c9; font-size: 9px; }
.admin-audit-list small { color: #607e8a; font-size: 8px; }
.admin-audit-list em { display: block; margin-top: 5px; color: #82c7df; font-size: 8px; font-style: normal; }

.admin-confirm-panel { position: absolute; inset: 0; z-index: 5; display: grid; place-items: center; padding: 20px; background: rgba(3, 10, 15, .82); backdrop-filter: blur(3px); }
.admin-confirm-panel.hidden,
.admin-confirm-panel[aria-hidden="true"] { display: none !important; pointer-events: none !important; }
.admin-confirm-panel > section { width: min(430px, 100%); padding: 20px; border: 1px solid rgba(93, 189, 228, .34); border-radius: 9px; background: #0c202b; box-shadow: 0 18px 50px rgba(0, 0, 0, .5); }
.admin-confirm-panel small { color: #67badb; font-size: 8px; font-weight: 900; letter-spacing: .15em; }
.admin-confirm-panel p { margin: 13px 0 18px; color: #dcecf3; font-size: 12px; line-height: 1.55; }
.admin-confirm-panel > section > div { display: flex; justify-content: flex-end; gap: 8px; }
.admin-confirm-panel button { min-height: 36px; padding: 0 16px; }

.server-broadcast-announcement {
    --broadcast-accent: #70d4f6;
    --broadcast-accent-rgb: 112, 212, 246;
    right: 0;
    left: 0;
    margin-inline: auto;
    border-color: rgba(var(--broadcast-accent-rgb), .62);
    background:
        radial-gradient(circle at 14% 50%, rgba(var(--broadcast-accent-rgb), .13), transparent 31%),
        linear-gradient(108deg, rgba(7, 18, 27, .99), rgba(13, 39, 53, .985) 54%, rgba(7, 17, 25, .99));
    box-shadow: 0 24px 70px rgba(0, 0, 0, .68), 0 0 28px rgba(var(--broadcast-accent-rgb), .12), inset 0 1px rgba(255, 255, 255, .08);
    filter: none;
    transform: translate3d(0, -18px, 0) scale(.965);
    text-rendering: optimizeLegibility;
    will-change: opacity, transform;
}
.server-broadcast-announcement::before {
    opacity: .62;
    border-color: rgba(var(--broadcast-accent-rgb), .28);
    box-shadow: inset 0 0 18px rgba(var(--broadcast-accent-rgb), .035);
}
.server-broadcast-announcement::after { display: none; filter: none; }
.server-broadcast-announcement.is-visible {
    filter: none;
    transform: translate3d(0, 0, 0) scale(1);
    animation: server-broadcast-arrive 420ms cubic-bezier(.16, .78, .24, 1) both;
}
.server-broadcast-announcement.is-visible::before { animation: none; transform: none; }
.server-broadcast-announcement.is-leaving {
    filter: none;
    transform: translate3d(0, -9px, 0) scale(.975);
}
.server-broadcast-icon {
    display: grid;
    place-items: center;
    border-color: rgba(var(--broadcast-accent-rgb), .46);
    border-radius: 18px;
    background: radial-gradient(circle, rgba(var(--broadcast-accent-rgb), .18), rgba(8, 24, 34, .92) 72%);
    box-shadow: 0 0 22px rgba(var(--broadcast-accent-rgb), .13), inset 0 0 16px rgba(var(--broadcast-accent-rgb), .07);
    color: var(--broadcast-accent);
    font-size: 28px;
    line-height: 1;
    text-shadow: 0 0 10px rgba(var(--broadcast-accent-rgb), .42);
    filter: none;
    transform: none;
    will-change: auto;
}
.server-broadcast-icon::before,
.server-broadcast-icon::after,
.server-broadcast-announcement .shiny-announcement-copy::after { display: none; }
.server-broadcast-announcement.is-visible .server-broadcast-icon,
.server-broadcast-announcement.is-visible .shiny-announcement-copy > small {
    animation: none;
    filter: none;
    transform: none;
}
.server-broadcast-announcement .shiny-announcement-copy { gap: 6px; }
.server-broadcast-announcement .shiny-announcement-copy > small {
    width: auto;
    color: var(--broadcast-accent);
    text-shadow: none;
    filter: none;
    will-change: auto;
}
.server-broadcast-announcement .shiny-announcement-copy > strong {
    overflow-wrap: anywhere;
    color: #f5fbfe;
    text-shadow: 0 2px 5px rgba(0, 0, 0, .48);
    filter: none;
}
.server-broadcast-announcement .shiny-announcement-copy > span { display: block; }
.server-broadcast-announcement .shiny-announcement-copy b {
    display: block;
    color: #c4d8e2;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
    overflow-wrap: anywhere;
    white-space: normal;
    text-shadow: none;
    filter: none;
}
.server-broadcast-announcement .shiny-announcement-meta { border-left-color: rgba(var(--broadcast-accent-rgb), .24); }
.server-broadcast-announcement .shiny-announcement-meta strong { color: var(--broadcast-accent); text-shadow: none; }
.server-broadcast-announcement.broadcast-event { --broadcast-accent: #cf9fff; --broadcast-accent-rgb: 207, 159, 255; }
.server-broadcast-announcement.broadcast-warning { --broadcast-accent: #ffc761; --broadcast-accent-rgb: 255, 199, 97; }
.server-broadcast-announcement.broadcast-maintenance { --broadcast-accent: #ff9094; --broadcast-accent-rgb: 255, 144, 148; }

@keyframes server-broadcast-arrive {
    0% { opacity: 0; transform: translate3d(0, -17px, 0) scale(.965); }
    68% { opacity: 1; transform: translate3d(0, 1px, 0) scale(1); }
    100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}

@media (max-width: 680px) {
    .server-broadcast-announcement .shiny-announcement-copy b {
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 6;
    }
}

@media (prefers-reduced-motion: reduce) {
    .server-broadcast-announcement,
    .server-broadcast-announcement.is-visible,
    .server-broadcast-announcement.is-leaving {
        filter: none !important;
        transform: translate3d(0, 0, 0) scale(1) !important;
    }
}

@media (max-width: 760px) {
    .developer-console-overlay { padding: 8px; }
    .developer-console-window { width: calc(100vw - 16px); height: calc(100vh - 16px); }
    .developer-console-header { min-height: 62px; padding: 10px 54px 10px 12px; }
    .developer-console-close-button { top: 10px; right: 10px; }
    .developer-console-header > div > span:first-child { display: none; }
    .developer-console-tabs { padding: 6px 8px; }
    .developer-console-view { padding: 10px; }
    .admin-dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-player-layout { grid-template-columns: 1fr; }
    .admin-form { grid-template-columns: 1fr; }
    .admin-form-wide { grid-column: auto; }
    .admin-trainer-help { grid-template-columns: 1fr; }
    .admin-trainer-help strong { grid-column: auto; }
    .admin-trainer-command-list { grid-column: auto; grid-template-columns: 1fr; }
    .admin-player-detail dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Evolution Stones: renderer compartilhado entre Inventário, Depot, evolução e listas. */
.animated-item-visual {
    position: relative;
    display: inline-block;
    flex: none;
    width: 36px;
    height: 36px;
    overflow: visible;
    vertical-align: middle;
}
.animated-item-fallback,
.animated-item-viewport {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.animated-item-fallback {
    object-fit: contain;
    image-rendering: pixelated;
    opacity: 1;
}
.animated-item-viewport {
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}
.animated-item-sheet {
    position: absolute !important;
    top: 0;
    left: 0;
    width: var(--animated-item-sheet-width) !important;
    max-width: none !important;
    height: 100% !important;
    object-fit: fill !important;
    image-rendering: pixelated;
    animation: animated-item-frames var(--animated-item-cycle) steps(var(--animated-item-frame-count), end) infinite;
    will-change: transform;
}
.animated-item-visual.is-sheet-ready > .animated-item-fallback { opacity: 0; }
.animated-item-visual.is-sheet-ready > .animated-item-viewport { opacity: 1; }
.animated-item-visual.is-sheet-error > .animated-item-fallback { opacity: 1; }
.animated-item-visual.is-sheet-error > .animated-item-viewport { opacity: 0; }
.animated-items-paused .animated-item-sheet { animation-play-state: paused; }
.inventory-slot.has-item > .animated-item-visual {
    z-index: 1;
    width: 42px;
    height: 42px;
    filter: drop-shadow(0 4px 3px #0009);
}
.inventory-slot.has-item > .animated-item-visual img { filter: none; }
.depot-item-card > .animated-item-visual { width: 36px; height: 36px; }

/* Hunt Analyzer: painel persistente e não modal, baseado no sistema visual do Depot. */
.hunt-analyzer-panel {
  position:fixed;
  z-index:68;
  width:min(430px,calc(100vw - 16px));
  max-height:calc(100vh - 16px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  color:#dcebf7;
  background:linear-gradient(180deg,#0c2030 0%,#081722 100%);
  border:1px solid #29465b;
  border-radius:12px;
  box-shadow:0 18px 48px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.035);
  pointer-events:auto;
}
.hunt-analyzer-panel.hidden,
.hunt-analyzer-reset-confirmation.hidden {
  display:none !important;
  pointer-events:none !important;
}
.hunt-analyzer-panel[inert],
.hunt-analyzer-reset-confirmation[inert] { pointer-events:none; }
.hunt-analyzer-panel.dragging { user-select:none; cursor:grabbing; }
.hunt-analyzer-header {
  position:relative;
  min-height:62px;
  padding:11px 92px 10px 14px;
  display:flex;
  align-items:center;
  border-bottom:1px solid #1d384b;
  background:#0e2638;
  cursor:grab;
  touch-action:none;
}
.hunt-analyzer-heading { min-width:0; display:flex; flex-direction:column; gap:1px; }
.hunt-analyzer-heading small { color:#6f96ad; font-size:8px; font-weight:900; letter-spacing:.14em; }
.hunt-analyzer-heading strong { color:#eef8ff; font-size:17px; line-height:1.1; }
.hunt-analyzer-heading span { overflow:hidden; color:#82b9d7; font-size:10px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.hunt-analyzer-actions { position:absolute; z-index:4; top:50%; right:12px; display:flex; gap:7px; transform:translateY(-50%); }
.hunt-analyzer-actions .depot-close-button {
  position:relative;
  top:auto;
  right:auto;
  flex:0 0 32px;
  transform:none;
}
.hunt-analyzer-actions .depot-close-button:hover { transform:none; }
.hunt-analyzer-actions .depot-close-button svg { width:18px; height:18px; }
.hunt-analyzer-footer button:focus-visible,
.hunt-analyzer-reset-confirmation button:focus-visible { outline:2px solid #68b8df; outline-offset:2px; }
.hunt-analyzer-content { min-height:0; padding:12px; overflow-y:auto; scrollbar-color:#355b72 #081722; scrollbar-width:thin; }
.hunt-analyzer-empty { min-height:230px; display:grid; place-items:center; align-content:center; gap:8px; text-align:center; }
.hunt-analyzer-empty img { width:48px; height:48px; opacity:.55; image-rendering:pixelated; }
.hunt-analyzer-empty strong { color:#b5cada; font-size:12px; }
.hunt-analyzer-empty span { color:#668398; font-size:10px; }
.hunt-analyzer-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; }
.hunt-analyzer-metrics article,
.hunt-analyzer-rates div {
  min-width:0;
  padding:9px 7px;
  background:#0a1a27;
  border:1px solid #1d384a;
  border-radius:7px;
}
.hunt-analyzer-metrics small,.hunt-analyzer-rates small { display:block; color:#638397; font-size:7px; font-weight:900; letter-spacing:.08em; }
.hunt-analyzer-metrics strong { display:block; margin-top:4px; color:#eaf7ff; font-size:14px; white-space:nowrap; }
.hunt-analyzer-rates { margin-top:7px; display:grid; grid-template-columns:repeat(2,1fr); gap:7px; }
.hunt-analyzer-rates strong { display:block; margin-top:3px; overflow:hidden; color:#8fd2ef; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.hunt-analyzer-finance { margin-top:11px; padding:11px; background:#091a27; border:1px solid #203b4d; border-radius:8px; }
.hunt-analyzer-finance header,.hunt-analyzer-drops > header { display:flex; justify-content:space-between; align-items:center; }
.hunt-analyzer-finance header { flex-direction:column; align-items:flex-start; }
.hunt-analyzer-finance header small,.hunt-analyzer-drops header small { color:#63899f; font-size:7px; font-weight:900; letter-spacing:.12em; }
.hunt-analyzer-finance header strong,.hunt-analyzer-drops header strong { color:#c7dce9; font-size:11px; }
.hunt-analyzer-finance dl { margin:8px 0 0; }
.hunt-analyzer-finance dl div { display:flex; justify-content:space-between; padding:5px 0; color:#83a0b2; font-size:10px; border-top:1px solid rgba(63,94,112,.22); }
.hunt-analyzer-finance dt,.hunt-analyzer-finance dd { margin:0; }
.hunt-analyzer-finance dd { color:#d8e9f3; font-weight:800; }
.hunt-analyzer-finance .cost { color:#efad9e; }
.hunt-analyzer-finance .total,.hunt-analyzer-finance .profit { color:#b8cfdd; font-weight:800; }
.hunt-analyzer-finance .profit dd { color:#8be0bb; }
.hunt-analyzer-finance .negative,.hunt-analyzer-rates .negative { color:#ef978d; }
.hunt-analyzer-drops { margin-top:11px; }
.hunt-analyzer-drops > header { margin-bottom:7px; }
.hunt-analyzer-drops header span { display:flex; flex-direction:column; }
.hunt-analyzer-drops header b { min-width:25px; padding:3px 6px; color:#83b9d5; background:#0a1a27; border-radius:10px; font-size:9px; text-align:center; }
.hunt-analyzer-drops > div { max-height:178px; overflow-y:auto; scrollbar-color:#355b72 #081722; scrollbar-width:thin; }
.hunt-analyzer-drop { display:grid; grid-template-columns:36px minmax(0,1fr) auto auto; gap:8px; align-items:center; min-height:48px; padding:6px 8px; border-top:1px solid #1c3546; }
.hunt-analyzer-drop img { width:32px; height:32px; object-fit:contain; image-rendering:pixelated; }
.hunt-analyzer-drop span { min-width:0; display:flex; flex-direction:column; }
.hunt-analyzer-drop strong { overflow:hidden; color:#cfdfeb; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.hunt-analyzer-drop small { color:#66879b; font-size:8px; }
.hunt-analyzer-drop b { color:#8ba7b8; font-size:9px; }
.hunt-analyzer-drop em { min-width:58px; color:#9ed4ba; font-size:9px; font-style:normal; font-weight:800; text-align:right; }
.hunt-analyzer-no-drops { padding:20px 8px; color:#668397; font-size:9px; text-align:center; border:1px dashed #264253; border-radius:7px; }
.hunt-analyzer-footer { flex:0 0 auto; min-height:43px; padding:7px 10px 7px 13px; display:flex; gap:10px; align-items:center; justify-content:space-between; border-top:1px solid #1d384b; background:#0a1d2a; }
.hunt-analyzer-footer span { overflow:hidden; color:#6f8fa2; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.hunt-analyzer-footer button,.hunt-analyzer-reset-confirmation button { padding:7px 10px; color:#9fb9ca; background:#10283a; border:1px solid #2b4c61; border-radius:6px; font-size:8px; font-weight:900; text-transform:uppercase; cursor:pointer; }
.hunt-analyzer-footer button:hover,.hunt-analyzer-reset-confirmation button:hover { color:#eef8ff; border-color:#4b7791; }
.hunt-analyzer-footer button:disabled { opacity:.4; cursor:not-allowed; }
.hunt-analyzer-reset-confirmation { position:absolute; inset:62px 0 0; z-index:3; display:grid; place-items:center; align-content:center; gap:7px; padding:18px; text-align:center; background:rgba(6,16,24,.96); }
.hunt-analyzer-reset-confirmation strong { color:#edf7ff; font-size:13px; }
.hunt-analyzer-reset-confirmation span { color:#819cad; font-size:9px; }
.hunt-analyzer-reset-confirmation div { display:flex; gap:8px; margin-top:5px; }
.hunt-analyzer-reset-confirmation button:last-child { color:#fff; border-color:#8d4f4a; background:#672f2d; }
.hunt-analyzer-compact-summary { display:none; }
.hunt-analyzer-panel.minimized { width:min(360px,calc(100vw - 16px)); }
.hunt-analyzer-panel.minimized .hunt-analyzer-header { min-height:52px; padding-top:9px; padding-bottom:8px; border-bottom:0; }
.hunt-analyzer-panel.minimized .hunt-analyzer-heading strong { font-size:14px; }
.hunt-analyzer-panel.minimized .hunt-analyzer-heading span { display:none; }
.hunt-analyzer-panel.minimized .hunt-analyzer-content {
  min-height:60px;
  padding:8px 10px 10px;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.hunt-analyzer-panel.minimized .hunt-analyzer-metrics,
.hunt-analyzer-panel.minimized .hunt-analyzer-rates,
.hunt-analyzer-panel.minimized .hunt-analyzer-finance,
.hunt-analyzer-panel.minimized .hunt-analyzer-drops,
.hunt-analyzer-panel.minimized .hunt-analyzer-footer { display:none; }
.hunt-analyzer-panel.minimized .hunt-analyzer-compact-summary {
  width:100%;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:stretch;
  gap:6px;
}
.hunt-analyzer-compact-summary span {
  min-width:0;
  height:42px;
  padding:6px 4px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  text-align:center;
  background:#091a27;
  border:1px solid #1d394a;
  border-radius:6px;
}
.hunt-analyzer-compact-summary small { display:block; color:#607f93; font-size:6px; font-weight:900; line-height:1; }
.hunt-analyzer-compact-summary strong { display:block; max-width:100%; margin-top:3px; overflow:hidden; color:#c9e6f5; font-size:8px; line-height:1.15; text-overflow:ellipsis; white-space:nowrap; }

@media (max-width:720px) {
  .hunt-analyzer-panel { width:min(390px,calc(100vw - 12px)); max-height:calc(100vh - 12px); }
  .hunt-analyzer-metrics { grid-template-columns:repeat(2,1fr); }
  .hunt-analyzer-drop { grid-template-columns:32px minmax(0,1fr) auto; }
  .hunt-analyzer-drop em { grid-column:2 / 4; text-align:left; }
}
@media (prefers-reduced-motion:reduce) {
  .hunt-analyzer-panel,.hunt-analyzer-actions button { transition:none !important; }
}

/* Resumo de saída: somente apresenta os totais autoritativos do Hunt Analyzer. */
.hunt-session-summary-overlay {
  position:fixed;
  z-index:76;
  inset:0;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(2,8,15,.67);
  backdrop-filter:blur(2px);
}
.hunt-session-summary-overlay.hidden { display:none; }
.hunt-session-summary-window {
  width:min(560px,calc(100vw - 28px));
  max-height:min(680px,calc(100vh - 36px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #365a77;
  border-radius:10px;
  background:linear-gradient(180deg,#101d2a,#0a141f);
  box-shadow:0 24px 64px #000b,inset 0 1px 0 #ffffff10;
}
.hunt-session-summary-window > header {
  position:relative;
  min-height:66px;
  display:flex;
  align-items:center;
  padding:12px 58px 12px 16px;
  border-bottom:1px solid #263d51;
  background:#0c1722;
}
.hunt-session-summary-window header small,.hunt-session-summary-heading small {
  display:block;
  color:#7292ab;
  font-size:8px;
  font-weight:900;
  letter-spacing:.12em;
}
.hunt-session-summary-window h2 { margin:3px 0 0; color:#f1f7fb; font-size:17px; line-height:1.05; }
.hunt-session-summary-content { min-height:0; padding:15px 16px 17px; overflow:auto; }
.hunt-session-summary-heading { padding-bottom:12px; border-bottom:1px solid #20394b; }
.hunt-session-summary-heading strong { display:block; margin-top:4px; overflow:hidden; color:#dceef9; font-size:16px; text-overflow:ellipsis; white-space:nowrap; }
.hunt-session-summary-metrics,.hunt-session-summary-rates { display:grid; margin:12px 0 0; padding:0; }
.hunt-session-summary-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.hunt-session-summary-rates { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.hunt-session-summary-metrics div,.hunt-session-summary-rates div {
  min-width:0;
  padding:9px 10px;
  border:1px solid #243f53;
  border-radius:7px;
  background:#091a27;
}
.hunt-session-summary-metrics dt,.hunt-session-summary-rates dt { color:#66899f; font-size:7px; font-weight:900; letter-spacing:.075em; }
.hunt-session-summary-metrics dd,.hunt-session-summary-rates dd { margin:4px 0 0; overflow:hidden; color:#dcecf6; font-size:11px; font-weight:850; text-overflow:ellipsis; white-space:nowrap; }
.hunt-session-summary-rates dd { color:#89cce8; font-size:9px; }
.hunt-session-summary-drops { margin-top:13px; }
.hunt-session-summary-drops header { display:flex; align-items:center; justify-content:space-between; padding-bottom:7px; }
.hunt-session-summary-drops header small { color:#6f9cb5; font-size:8px; font-weight:900; letter-spacing:.1em; }
.hunt-session-summary-drops header span { color:#6d899b; font-size:8px; font-weight:800; }
.hunt-session-summary-drops ul { max-height:190px; margin:0; padding:0; overflow:auto; list-style:none; border:1px solid #203a4d; border-radius:7px; background:#071521; }
.hunt-session-summary-drops li { min-height:45px; display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:8px; align-items:center; padding:5px 9px; border-top:1px solid #1a3243; }
.hunt-session-summary-drops li:first-child { border-top:0; }
.hunt-session-summary-drops img { width:32px; height:32px; object-fit:contain; image-rendering:pixelated; }
.hunt-session-summary-drops strong { overflow:hidden; color:#cfe0eb; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.hunt-session-summary-drops b { color:#a8cfdf; font-size:10px; }
@media (max-width:520px) {
  .hunt-session-summary-overlay { padding:10px; }
  .hunt-session-summary-window { width:100%; max-height:calc(100vh - 20px); }
  .hunt-session-summary-rates { grid-template-columns:1fr; }
  .hunt-session-summary-drops ul { max-height:150px; }
}

/* Gerenciamento de Captura: modal no mesmo envelope visual do Depot. */
.capture-history-overlay[inert] { pointer-events:none; }
.capture-history-window {
  width:min(920px,calc(100vw - 28px));
  height:min(690px,calc(100vh - 36px));
  max-height:calc(100vh - 36px);
}
.capture-history-header { flex:0 0 auto; }
.capture-history-tabs { flex:0 0 auto; }
.capture-history-tools {
  flex:0 0 auto;
  min-height:52px;
  padding:9px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-bottom:1px solid #243c4f;
  background:#0c1925;
}
.capture-history-search {
  width:min(390px,100%);
  height:34px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:0 10px;
  border:1px solid #2d4e67;
  border-radius:6px;
  background:#07131e;
  color:#6f91a9;
}
.capture-history-search:focus-within { border-color:#5886a8; box-shadow:0 0 0 2px #5886a826; }
.capture-history-search input {
  min-width:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  color:#dceaf4;
  font:600 11px Barlow,sans-serif;
}
.capture-history-search input::placeholder { color:#587387; }
.game-shell .capture-history-search input:focus,
.game-shell .pokedex-search input:focus { border-color:transparent; box-shadow:none; }
.capture-history-show-all {
  display:flex;
  align-items:center;
  gap:7px;
  color:#9ab1c1;
  font-size:10px;
  font-weight:700;
  white-space:nowrap;
  cursor:pointer;
}
.capture-history-show-all input { width:15px; height:15px; accent-color:#4e8cac; }
.capture-history-show-all input:focus-visible { outline:2px solid #6aa2c5; outline-offset:2px; }
.capture-history-status { flex:0 0 auto; min-height:30px; padding:7px 13px; }
.capture-history-table-shell {
  position:relative;
  min-height:0;
  flex:1 1 auto;
  overflow:auto;
  background:#08131d;
  scrollbar-color:#355b72 #081722;
  scrollbar-width:thin;
}
.capture-history-table {
  width:100%;
  min-width:790px;
  border-collapse:separate;
  border-spacing:0;
  table-layout:fixed;
  color:#b8cad7;
  font-size:10px;
  font-variant-numeric:tabular-nums;
}
.capture-history-table th {
  position:sticky;
  z-index:2;
  top:0;
  height:48px;
  padding:5px 6px;
  border-bottom:1px solid #315069;
  background:#102332;
  color:#7f9db2;
  font-size:8px;
  font-weight:900;
  letter-spacing:.04em;
  text-align:center;
  text-transform:uppercase;
}
.capture-history-table th img {
  width:22px;
  height:22px;
  display:block;
  margin:0 auto 2px;
  object-fit:contain;
  image-rendering:pixelated;
}
.capture-history-table th span { display:block; white-space:nowrap; }
.capture-history-table th.capture-history-dex { width:54px; }
.capture-history-table th.capture-history-pokemon { width:210px; text-align:left; }
.capture-history-table th:nth-child(n+3):nth-child(-n+6) { width:78px; }
.capture-history-table th:nth-last-child(-n+2) { width:94px; }
.capture-history-table td {
  height:52px;
  padding:6px;
  border-bottom:1px solid #1c3242;
  background:#0a1823;
  text-align:center;
}
.capture-history-table tbody tr:nth-child(even) td { background:#0b1b28; }
.capture-history-table tbody tr:hover td { background:#10283a; }
.capture-history-table td.capture-history-dex { color:#63869e; font-weight:800; }
.capture-history-table td.capture-history-pokemon {
  display:flex;
  align-items:center;
  gap:8px;
  text-align:left;
}
.capture-history-pokemon-sprite {
    width:38px;
    height:38px;
    flex:0 0 38px;
}
.capture-history-pokemon-sprite > img {
    width:38px;
    height:38px;
    object-fit:contain;
    image-rendering:pixelated;
  }
.capture-history-table td.capture-history-pokemon > span { min-width:0; display:flex; align-items:center; gap:4px; }
.capture-history-table td.capture-history-pokemon strong { overflow:hidden; color:#dbe8f1; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.capture-history-table tr.is-shiny td.capture-history-pokemon strong { color:#e7c86d; text-shadow:0 1px 5px #d6a62e38; }
.capture-history-table .shiny-identity-symbol { flex:none; }
.capture-history-table td.capture-history-captures { color:#8ed7b4; font-weight:900; }
.capture-history-table td.capture-history-total { color:#9ccde5; font-weight:900; }
.capture-history-empty {
  position:absolute;
  inset:48px 0 0;
  display:grid;
  place-items:center;
  align-content:center;
  gap:7px;
  padding:24px;
  background:#08131d;
  color:#7893a6;
  text-align:center;
}
.capture-history-empty.hidden { display:none; }
.capture-history-empty img { width:48px; height:48px; opacity:.55; image-rendering:pixelated; }
.capture-history-empty strong { color:#b9ccd9; font-size:12px; }
.capture-history-empty span { font-size:9px; }
@media (max-width:720px) {
  .capture-history-window { width:calc(100vw - 12px); height:calc(100vh - 12px); max-height:calc(100vh - 12px); }
  .capture-history-tools { align-items:stretch; flex-direction:column; gap:7px; }
  .capture-history-search { width:100%; }
  .capture-history-show-all { min-height:24px; }
  .capture-history-header { padding-left:10px; }
  .capture-history-header .depot-title h2 { font-size:16px; }
}

/* Pokédex: catálogo sob demanda no envelope estrutural do Depot. */
.pokedex-overlay[inert] { pointer-events:none; }
.pokedex-window {
  width:min(1040px,calc(100vw - 28px));
  height:min(720px,calc(100vh - 36px));
  max-height:calc(100vh - 36px);
  overflow:hidden;
}
.pokedex-header,.pokedex-tabs,.pokedex-tools,.pokedex-status { flex:0 0 auto; }
.pokedex-tools {
  min-height:50px;
  padding:8px 12px;
  display:flex;
  align-items:center;
  gap:10px;
  border-bottom:1px solid #243c4f;
  background:#0c1925;
}
.pokedex-search {
  min-width:0;
  height:34px;
  flex:1 1 360px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:0 10px;
  border:1px solid #2d4e67;
  border-radius:6px;
  background:#07131e;
  color:#6f91a9;
}
.pokedex-search:focus-within,.pokedex-type-filter:focus-within { border-color:#5886a8; box-shadow:0 0 0 2px #5886a826; }
.pokedex-search input {
  min-width:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  color:#dceaf4;
  font:600 11px Barlow,sans-serif;
}
.pokedex-search input::placeholder { color:#587387; }
.pokedex-type-filter {
  height:34px;
  flex:0 0 190px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 8px 0 10px;
  border:1px solid #2d4e67;
  border-radius:6px;
  background:#07131e;
  color:#66879e;
  font-size:8px;
  font-weight:900;
}
.pokedex-type-filter select {
  min-width:0;
  height:100%;
  flex:1;
  border:0;
  outline:0;
  background:#07131e;
  color:#c2d3df;
  font:700 10px Barlow,sans-serif;
}
.pokedex-status { min-height:29px; padding:7px 13px; }
.pokedex-content {
  min-height:0;
  flex:1 1 auto;
  display:grid;
  grid-template-columns:minmax(330px,42%) minmax(0,1fr);
  overflow:hidden;
  background:#08131d;
}
.pokedex-catalog-shell {
  position:relative;
  min-width:0;
  min-height:0;
  overflow-y:auto;
  border-right:1px solid #294357;
  scrollbar-color:#355b72 #081722;
  scrollbar-width:thin;
}
.pokedex-catalog {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  padding:9px;
}
.pokedex-card {
  position:relative;
  min-width:0;
  min-height:118px;
  padding:7px 6px 8px;
  display:grid;
  grid-template-rows:auto 52px auto auto;
  place-items:center;
  gap:3px;
  border:1px solid #263f52;
  border-radius:7px;
  background:#0b1b27;
  color:#bed0dc;
  cursor:pointer;
  transition:border-color .14s ease,background .14s ease,box-shadow .14s ease;
}
.pokedex-card:hover { border-color:#3b6179; background:#102535; }
.pokedex-card.active { border-color:#528eaa; background:#113044; box-shadow:inset 3px 0 #55a2c4,0 0 0 1px #4c8ba52e; }
.pokedex-card:focus-visible { outline:2px solid #75b6d3; outline-offset:2px; z-index:1; }
.pokedex-card > small { justify-self:start; color:#5f849d; font-size:8px; font-weight:900; }
.pokedex-card-sprite { width:52px; height:52px; justify-self:center; }
.pokedex-card-sprite > img { width:52px; height:52px; object-fit:contain; image-rendering:pixelated; }
.pokedex-card > strong { width:100%; overflow:hidden; color:#dce9f1; font-size:10px; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.pokedex-card.is-shiny > strong { color:#e5ca79; text-shadow:0 1px 5px #c99d2830; }
.pokedex-type-list { display:flex; align-items:center; justify-content:flex-start; flex-wrap:wrap; gap:3px; }
.pokedex-card .pokedex-type-list { justify-content:center; }
.pokedex-card .travel-type,.pokedex-detail .travel-type { min-height:15px; padding:2px 5px; border-radius:3px; font-size:6px; line-height:1; }
.pokedex-empty {
  position:absolute;
  inset:0;
  display:grid;
  place-content:center;
  gap:5px;
  padding:20px;
  background:#08131d;
  color:#7893a6;
  text-align:center;
}
.pokedex-empty.hidden { display:none; }
.pokedex-empty strong { color:#bdced9; font-size:11px; }
.pokedex-empty span { font-size:9px; }
.pokedex-detail {
  min-width:0;
  min-height:0;
  padding:12px;
  overflow-y:auto;
  scrollbar-color:#355b72 #081722;
  scrollbar-width:thin;
}
.pokedex-detail-placeholder {
  min-height:100%;
  display:grid;
  place-content:center;
  justify-items:center;
  gap:7px;
  color:#7691a4;
  text-align:center;
}
.pokedex-detail-placeholder img { width:58px; height:58px; opacity:.5; image-rendering:pixelated; }
.pokedex-detail-placeholder strong { color:#b9ccd8; font-size:12px; }
.pokedex-detail-placeholder span { max-width:360px; font-size:9px; }
.pokedex-detail-placeholder.is-error strong { color:#e29b9b; }
.pokedex-loader { width:24px; height:24px; border:2px solid #27485e; border-top-color:#6ca8c7; border-radius:50%; animation:pokedex-spin .8s linear infinite; }
@keyframes pokedex-spin { to { transform:rotate(360deg); } }
.pokedex-hero {
  min-height:132px;
  padding:10px 12px;
  display:flex;
  align-items:center;
  gap:14px;
  border:1px solid #2a485e;
  border-radius:8px;
  background:radial-gradient(circle at 18% 50%,#173b50 0,#102534 32%,#0b1a26 72%);
}
.pokedex-portrait {
  width:110px;
  height:110px;
  flex:0 0 110px;
  display:grid;
  place-items:center;
  border:1px solid #31556d;
  border-radius:50%;
  background:#081722;
}
.pokedex-portrait img { width:92px; height:92px; object-fit:contain; image-rendering:pixelated; }
.pokedex-hero > div:last-child { min-width:0; }
.pokedex-hero small { color:#668ba3; font-size:9px; font-weight:900; }
.pokedex-hero h3 { margin:2px 0 7px; color:#e1edf4; font-family:Barlow Condensed,sans-serif; font-size:23px; line-height:1; }
.pokedex-hero.is-shiny h3 { color:#e8cf82; text-shadow:0 1px 7px #d2a72d35; }
.pokedex-hero .shiny-identity-symbol { font-size:.75em; vertical-align:middle; }
.pokedex-section { margin-top:10px; border:1px solid #243f53; border-radius:7px; overflow:hidden; background:#0a1823; }
.pokedex-section > header { min-height:31px; padding:7px 9px; display:flex; align-items:center; justify-content:space-between; gap:8px; border-bottom:1px solid #20394b; background:#102332; }
.pokedex-section > header small { color:#82a4b9; font-size:8px; font-weight:900; letter-spacing:.08em; }
.pokedex-section > header span { color:#607e92; font-size:8px; }
.pokedex-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:#203748; }
.pokedex-stats > div { min-height:48px; padding:7px; display:grid; place-content:center; justify-items:center; gap:2px; background:#0b1b27; }
.pokedex-stats span { color:#738fa2; font-size:7px; font-weight:800; text-align:center; text-transform:uppercase; }
.pokedex-stats strong { color:#d8e7f0; font-size:14px; font-variant-numeric:tabular-nums; }
.pokedex-skills,.pokedex-loot { margin:0; padding:8px; list-style:none; }
.pokedex-skills { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.pokedex-skill { min-width:0; padding:7px 8px; border:1px solid #233e51; border-radius:6px; background:#0c1e2b; }
.pokedex-skill > div { display:flex; align-items:center; justify-content:space-between; gap:6px; }
.pokedex-skill strong { overflow:hidden; color:#cbdde8; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.pokedex-skill small { display:block; margin-top:4px; color:#7894a7; font-size:7px; }
.pokedex-evolutions { display:grid; gap:6px; padding:8px; }
.pokedex-evolution-option { min-height:58px; padding:7px 8px; display:flex; align-items:center; justify-content:space-between; gap:10px; border:1px solid #233e51; border-radius:6px; background:#0c1e2b; }
.pokedex-evolution-option > div:first-child { min-width:0; display:grid; gap:2px; }
.pokedex-evolution-option small { color:#718fa3; font-size:7px; text-transform:uppercase; }
.pokedex-evolution-option strong { color:#d5e5ee; font-size:11px; }
.pokedex-evolution-option > div:first-child > span { color:#7995a8; font-size:8px; }
.pokedex-evolution-item { display:flex; align-items:center; gap:5px; color:#bcd0dc; font-size:8px; white-space:nowrap; }
.pokedex-evolution-item img { width:30px; height:30px; object-fit:contain; image-rendering:pixelated; }
.pokedex-loot { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
.pokedex-loot li:not(.pokedex-section-empty) { min-width:0; min-height:38px; padding:5px; display:flex; align-items:center; gap:5px; border:1px solid #203a4c; border-radius:5px; background:#0c1c28; }
.pokedex-loot img { width:28px; height:28px; flex:0 0 28px; object-fit:contain; image-rendering:pixelated; }
.pokedex-loot span { overflow:hidden; color:#adbfcb; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.pokedex-section-empty { padding:13px; color:#708da0; font-size:9px; text-align:center; }
@media (max-width:760px) {
  .pokedex-window { width:calc(100vw - 12px); height:calc(100vh - 12px); max-height:calc(100vh - 12px); }
  .pokedex-tools { align-items:stretch; flex-wrap:wrap; }
  .pokedex-search { flex-basis:100%; }
  .pokedex-type-filter { flex:1 1 100%; }
  .pokedex-content { grid-template-columns:1fr; grid-template-rows:minmax(185px,38%) minmax(0,1fr); }
  .pokedex-catalog-shell { border-right:0; border-bottom:1px solid #294357; }
  .pokedex-catalog { grid-template-columns:repeat(3,minmax(105px,1fr)); }
  .pokedex-detail { padding:9px; }
  .pokedex-hero { min-height:110px; }
  .pokedex-portrait { width:88px; height:88px; flex-basis:88px; }
  .pokedex-portrait img { width:74px; height:74px; }
}
@media (max-width:480px) {
  .pokedex-catalog { grid-template-columns:repeat(2,minmax(105px,1fr)); }
  .pokedex-skills,.pokedex-loot { grid-template-columns:1fr; }
  .pokedex-evolution-option { align-items:flex-start; flex-direction:column; }
  .pokedex-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (prefers-reduced-motion:reduce) {
  .pokedex-card { transition:none; }
  .pokedex-loader { animation:none; border-top-color:#6ca8c7; }
}

/* Atualizações / Patch Notes */
.patch-notes-button { position:relative; }
.patch-notes-menu-badge {
  position:absolute;
  z-index:4;
  top:3px;
  right:1px;
  min-width:21px;
  height:12px;
  display:grid;
  place-items:center;
  padding:0 3px;
  border:1px solid #65b9d8;
  border-radius:6px;
  background:#123b50;
  color:#c7f2ff;
  box-shadow:0 2px 6px #00101899;
  font:900 6px/1 Barlow,sans-serif;
  letter-spacing:.04em;
  pointer-events:none;
}
.patch-notes-menu-badge.hidden { display:none; }
.patch-notes-window {
  width:min(880px,calc(100vw - 28px));
  height:min(650px,calc(100vh - 36px));
  max-height:calc(100vh - 36px);
}
.patch-notes-header { flex:0 0 auto; }
.patch-notes-search {
  flex:0 0 auto;
  min-height:38px;
  margin:10px 12px 0;
  display:flex;
  align-items:center;
  gap:7px;
  padding:0 10px;
  border:1px solid #29485e;
  border-radius:6px;
  background:#0a1925;
  color:#7296aa;
}
.patch-notes-search.hidden { display:none; }
.patch-notes-search:focus-within { border-color:#568aa7; box-shadow:0 0 0 2px #4e8faf24; }
.patch-notes-search input {
  min-width:0;
  height:35px;
  padding:0;
  border:0;
  background:transparent;
  color:#dcebf3;
  box-shadow:none;
  outline:0;
  font-size:10px;
}
.patch-notes-search input::placeholder { color:#58778b; }
.patch-notes-layout {
  min-height:0;
  flex:1 1 auto;
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  margin-top:10px;
  border-top:1px solid #263f52;
}
.patch-version-sidebar {
  position:relative;
  min-width:0;
  min-height:0;
  overflow-y:auto;
  border-right:1px solid #294357;
  background:#091722;
  scrollbar-color:#355b74 #08131d;
  scrollbar-width:thin;
}
.patch-version-list { display:grid; gap:5px; padding:10px; }
.patch-version {
  position:relative;
  min-width:0;
  min-height:78px;
  display:grid;
  grid-template-columns:1fr auto;
  align-content:center;
  gap:3px 7px;
  padding:10px;
  border:1px solid #243f53;
  border-radius:7px;
  background:#0d1e2b;
  color:#91a9b9;
  text-align:left;
  cursor:pointer;
  transition:border-color .14s ease,background-color .14s ease;
}
.patch-version:hover { border-color:#3d657e; background:#102636; }
.patch-version:focus-visible { z-index:1; outline:2px solid #71b4d0; outline-offset:2px; }
.patch-version.active { border-color:#4d88a4; background:#113044; box-shadow:inset 3px 0 #55a6c6; }
.patch-version-number { color:#d9e9f2; font-size:11px; }
.patch-version-date { align-self:center; color:#65869a; font-size:7px; }
.patch-version-title {
  grid-column:1/-1;
  overflow:hidden;
  font-size:9px;
  line-height:1.25;
  text-overflow:ellipsis;
}
.patch-version-new {
  position:absolute;
  top:6px;
  right:6px;
  padding:2px 4px;
  border:1px solid #4c94b3;
  border-radius:5px;
  background:#12374a;
  color:#bcecff;
  font-size:6px;
  font-style:normal;
  font-weight:900;
}
.patch-note-content {
  min-width:0;
  min-height:0;
  overflow-y:auto;
  padding:18px;
  background:linear-gradient(145deg,#0d1d29,#091520 72%);
  scrollbar-color:#355b74 #08131d;
  scrollbar-width:thin;
}
.patch-note-hero { padding:2px 2px 17px; border-bottom:1px solid #294154; }
.patch-note-meta { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.patch-note-meta strong { color:#66b1d1; font-size:8px; letter-spacing:.11em; }
.patch-note-meta time { color:#68879a; font-size:8px; }
.patch-note-hero h3 { margin:7px 0 5px; color:#edf6fb; font:800 23px/1.05 Barlow Condensed,sans-serif; }
.patch-note-hero p { max-width:620px; margin:0; color:#8fa9b9; font-size:10px; line-height:1.5; }
.patch-note-section { margin-top:12px; overflow:hidden; border:1px solid #263f51; border-radius:7px; background:#0b1a25; }
.patch-note-section > header { min-height:37px; display:grid; grid-template-columns:18px 1fr; align-items:center; gap:7px; padding:8px 10px; border-bottom:1px solid #223a4c; background:#102431; }
.patch-note-section-icon { color:#62a9c6; font-size:8px; }
.patch-note-section small { color:#6d91a7; font-size:8px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.patch-note-section ul { margin:0; padding:11px 13px 10px 29px; color:#9fb5c3; font-size:9px; line-height:1.55; }
.patch-note-section li + li { margin-top:5px; }
.patch-note-section.type-fix .patch-note-section-icon { color:#7dc4a0; }
.patch-note-section.type-balance .patch-note-section-icon { color:#b9a7d5; }
.patch-note-section.type-content .patch-note-section-icon { color:#76b5d7; }
.patch-note-section.type-interface .patch-note-section-icon { color:#71c1ca; }
.patch-note-section.type-security .patch-note-section-icon { color:#d09d8d; }
.patch-notes-state { padding:22px 14px; display:grid; justify-items:center; gap:5px; color:#6e8a9c; text-align:center; }
.patch-notes-state.hidden { display:none; }
.patch-notes-state strong { color:#b9ccd7; font-size:10px; }
.patch-notes-state span { font-size:8px; line-height:1.4; }
.patch-notes-error { margin:auto; }
@media (max-width:700px) {
  .patch-notes-overlay { padding:6px; }
  .patch-notes-window { width:calc(100vw - 12px); height:calc(100vh - 12px); max-height:calc(100vh - 12px); }
  .patch-notes-layout { grid-template-columns:1fr; grid-template-rows:minmax(112px,29%) minmax(0,1fr); }
  .patch-version-sidebar { border-right:0; border-bottom:1px solid #294357; }
  .patch-version-list { grid-auto-flow:column; grid-auto-columns:minmax(165px,48%); overflow-x:auto; }
  .patch-version { min-height:72px; }
  .patch-note-content { padding:12px; }
  .patch-note-hero h3 { font-size:20px; }
}
@media (max-width:430px) {
  .patch-notes-header { padding-left:10px; }
  .patch-notes-header .depot-title h2 { font-size:16px; }
  .patch-notes-header .depot-title > img { width:28px; height:28px; }
  .patch-note-section > header { grid-template-columns:14px 1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .patch-version { transition:none; }
}

/* Market Global */
.market-window {
  position:relative;
  width:min(1040px,calc(100vw - 28px));
  height:min(748px,calc(100vh - 36px));
  max-height:calc(100vh - 36px);
  overflow:hidden;
  border-color:var(--ui-line,#31546a);
  border-radius:var(--radius-xl,12px);
  background:var(--ui-blue-950,#07131d);
}
.market-header { flex:0 0 60px; min-height:60px; padding:8px 12px 8px 16px; gap:10px; }
.market-title { min-width:0; flex:1 1 auto; }
.market-title > img { width:28px; height:28px; }
.market-title > span { min-width:0; display:grid; gap:2px; }
.market-title h2 { font-size:16px; line-height:1; }
.market-title small { overflow:hidden; color:#8098a8; font-size:8px; font-weight:600; letter-spacing:0; text-overflow:ellipsis; text-transform:none; white-space:nowrap; }
.market-header-balances { display:flex; align-items:center; gap:6px; }
.market-balance { min-width:92px; height:40px; display:grid; align-content:center; gap:2px; padding:5px 10px; border:1px solid #2a4355; border-radius:var(--radius-md,7px); background:#ffffff08; }
.market-balance small { color:#718899; font-size:6px; font-weight:900; letter-spacing:.1em; }
.market-balance strong { color:#4ed78a; font-size:12px; line-height:1; }
.market-diamond-balance strong { color:#9adcf2; }
.market-layout { min-height:0; flex:1 1 auto; display:grid; grid-template-columns:178px minmax(0,1fr); overflow:hidden; border-top:1px solid #22394b; }
.market-sidebar { min-height:0; display:flex; flex-direction:column; gap:20px; padding:12px 10px; border-right:1px solid #263f52; background:#0a1721; }
.market-sidebar section { display:grid; gap:7px; }
.market-sidebar section > small { display:block; padding:0 8px 6px; border-bottom:1px solid #263f52; color:#76a8be; font-size:7px; font-weight:900; line-height:1.2; letter-spacing:.16em; }
.market-sidebar button { position:relative; min-width:0; min-height:44px; display:grid; align-content:center; gap:2px; padding:7px 9px 7px 13px; border:1px solid transparent; border-radius:var(--radius-md,7px); background:transparent; color:#8398a7; font-family:Barlow,sans-serif; text-align:left; cursor:pointer; transition:background-color .16s ease,border-color .16s ease,color .16s ease; }
.market-sidebar button:before { content:""; position:absolute; inset:7px auto 7px 5px; width:2px; border-radius:2px; background:transparent; }
.market-sidebar button strong { overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.market-sidebar button span { overflow:hidden; color:#62798a; font-size:7px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.market-sidebar button:hover { border-color:#29475b; background:#102330; color:#c5d8e3; }
.market-sidebar button.active { border-color:#44647a; background:linear-gradient(90deg,#1b3b50,#122735); color:#eff8fc; box-shadow:inset 0 0 18px #4e9dc218; }
.market-sidebar button.active:before { background:#62b8d8; box-shadow:0 0 8px #62b8d877; }
.market-sidebar button.active span { color:#8fb0c1; }
.market-sidebar button:focus-visible { outline:2px solid #70b5d1; outline-offset:2px; }
.market-sidebar-security { margin-top:auto; display:grid; gap:3px; padding:10px 8px 2px; border-top:1px solid #263f52; }
.market-sidebar-security strong { color:#76a8be; font-size:7px; letter-spacing:.08em; }
.market-sidebar-security span { color:#617b8c; font-size:7px; line-height:1.35; }
.market-workspace { min-width:0; min-height:0; display:flex; flex-direction:column; overflow:hidden; background:#08141e; }
.market-status { flex:0 0 25px; min-height:25px; padding:6px 12px; border-bottom:1px solid #1f3444; background:#091722; color:#68899c; font-size:7px; }
.market-status.error { color:#e5a1aa; }
.market-view { min-height:0; flex:1 1 auto; display:flex; flex-direction:column; overflow:hidden; }
.market-view.hidden { display:none; }
.market-toolbar {
  --market-control-height:32px;
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  gap:7px;
  padding:8px 12px;
  border-bottom:1px solid #263f52;
  background:#0b1822;
}
.market-toolbar-row { display:grid; align-items:end; gap:8px; }
.market-toolbar-primary-row { grid-template-columns:minmax(260px,1fr) minmax(140px,180px) minmax(110px,135px); }
.market-toolbar-secondary-row { grid-template-columns:repeat(2,minmax(220px,1fr)); }
.market-toolbar-secondary-row.pokemon-filters-hidden { grid-template-columns:1fr; }
.market-field { min-width:0; display:grid; grid-template-rows:10px var(--market-control-height); align-items:end; gap:3px; margin:0; color:#6f91a6; font-size:7px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.market-field-label { display:flex; align-items:center; min-height:10px; line-height:10px; }
.market-filter-group { min-width:0; display:grid; grid-template-columns:auto repeat(2,minmax(90px,1fr)); align-items:end; gap:7px; padding:5px 7px; border:1px solid #203a4d; border-radius:var(--radius-md,6px); background:#091722; }
.market-filter-group-label { align-self:center; padding-top:12px; color:#52768c; font-size:7px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.market-pokemon-filter.hidden { display:none; }
.market-category-source { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.market-category-tabs { display:flex; align-items:center; gap:3px; min-height:31px; overflow-x:auto; padding:3px; border:1px solid #1d303e; border-radius:var(--radius-md,6px); background:#07121b; scrollbar-width:thin; }
.market-category-tabs button { flex:0 0 auto; min-height:25px; padding:0 9px; border:1px solid transparent; border-radius:5px; background:transparent; color:#7f98a8; font:800 8px Barlow,sans-serif; cursor:pointer; }
.market-category-tabs button:hover { border-color:#29485b; background:#112634; color:#c8d9e2; }
.market-category-tabs button.active { border-color:#4b8ca9; background:#17445e; color:#eef9ff; box-shadow:inset 0 0 12px #6bc5e520; }
.market-category-tabs button:focus-visible { outline:2px solid #70b5d1; outline-offset:1px; }
.market-toolbar input,.market-toolbar select,.market-sell-form input,.market-sell-form select {
  width:100%; min-width:0; height:var(--market-control-height,32px); padding:0 8px; border:1px solid #2b4a60; border-radius:5px;
  background:#091722; color:#cbdce6; outline:0; font:600 9px Barlow,sans-serif;
}
.market-toolbar input:focus,.market-toolbar select:focus,.market-sell-form input:focus,.market-sell-form select:focus { border-color:#5793b0; box-shadow:0 0 0 2px #4b8eaa25; }
.market-search-control { position:relative; display:block; height:var(--market-control-height); }
.market-search-control > span { position:absolute; z-index:1; left:9px; top:50%; color:#66899e; transform:translateY(-50%); pointer-events:none; }
.market-search-control input { height:100%; padding-left:25px; }
.market-listing-grid {
  min-height:0; flex:1 1 auto; overflow-y:auto; display:grid; align-content:start;
  grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; padding:10px 12px;
  scrollbar-color:#355b74 #08131d; scrollbar-width:thin;
}
.market-listing-grid::-webkit-scrollbar,.market-history-list::-webkit-scrollbar { width:8px; }
.market-listing-grid::-webkit-scrollbar-thumb,.market-history-list::-webkit-scrollbar-thumb { border:2px solid #08131d; border-radius:8px; background:#355b74; }
.market-listing-grid::-webkit-scrollbar-thumb:hover,.market-history-list::-webkit-scrollbar-thumb:hover { background:#4b7893; }
.market-listing-card {
  min-width:0; min-height:0; display:grid; grid-template-columns:50px minmax(0,1fr); align-content:start; gap:7px 8px;
  padding:10px; border:1px solid #263f52; border-radius:var(--radius-lg,8px); background:#0d1b26; color:#8fa8b8;
  transition:border-color .16s ease,background-color .16s ease,transform .16s ease;
}
.market-listing-card:hover { border-color:#3b6178; background:#10212e; transform:translateY(-1px); }
.market-listing-visual { width:50px; height:50px; display:grid; place-items:center; align-self:start; overflow:hidden; border:1px solid #284a60; border-radius:var(--radius-md,7px); background:linear-gradient(145deg,#153044,#0b1d2a); }
.market-listing-visual > img { width:43px; height:43px; object-fit:contain; image-rendering:pixelated; }
.market-listing-visual > .animated-item-visual,
.market-listing-visual > .animated-item-visual .animated-item-fallback,
.market-listing-visual > .animated-item-visual .animated-item-viewport { width:43px; height:43px; }
.market-pokemon-sprite-frame { position:relative; display:block; overflow:hidden; width:54px; height:54px; flex:0 0 auto; }
.market-pokemon-sprite-frame img { position:absolute; inset:0; width:100%; height:100%; max-width:none; max-height:none; object-fit:contain; image-rendering:pixelated; filter:none; }
.market-listing-visual .market-pokemon-sprite-frame { width:100%; height:100%; }
.market-listing-copy { min-width:0; display:grid; align-content:start; gap:3px; }
.market-listing-copy small { color:#5f9fbb; font-size:7px; font-weight:900; text-transform:uppercase; }
.market-listing-copy strong { overflow:hidden; color:#dbe9f1; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.market-listing-copy span { overflow:hidden; font-size:8px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.market-listing-copy .market-addon-meta { color:#83adbf; }
.market-listing-card.kind-pokemon .market-listing-copy strong { color:#d9e7ef; }
.market-listing-price { grid-column:1/-1; min-width:0; display:grid; grid-template-columns:1fr auto; align-items:end; gap:2px 6px; padding-top:7px; border-top:1px solid #203747; }
.market-listing-price small { color:#68899d; font-size:6px; font-weight:900; }
.market-listing-price strong { grid-row:2; color:#4ed78a; font-size:13px; }
.market-listing-price span { grid-column:2; grid-row:1/3; align-self:center; color:#6c8798; font-size:7px; text-align:right; }
.market-listing-action { grid-column:1/-1; display:grid; grid-template-columns:48px 55px minmax(72px,1fr); gap:5px; margin-top:auto; }
.market-listing-action input { width:100%; height:27px; border:1px solid #2c4c62; border-radius:4px; background:#081621; color:#dbe8ef; text-align:center; }
.market-listing-action button,.market-pagination button,.market-sell-tabs button,.market-listing-card footer button,.market-confirmation button {
  min-height:27px; padding:0 9px; border:1px solid #355c75; border-radius:5px; background:#122c3e; color:#bad2df; font:800 8px Barlow,sans-serif; cursor:pointer;
}
.market-listing-action button:last-child,.market-primary { border-color:#4382a0 !important; background:#174560 !important; color:#e6f7ff !important; }
.market-listing-action button:hover,.market-pagination button:hover,.market-sell-tabs button:hover,.market-listing-card footer button:hover,.market-confirmation button:hover { background:#19394e; }
.market-listing-action button:focus-visible,.market-pagination button:focus-visible,.market-sell-tabs button:focus-visible,.market-listing-card footer button:focus-visible,.market-confirmation button:focus-visible { outline:2px solid #70b5d1; outline-offset:2px; }
.market-listing-action button:disabled,.market-pagination button:disabled { opacity:.45; cursor:not-allowed; }
.market-pagination { flex:0 0 36px; display:flex; align-items:center; justify-content:center; gap:6px; border-top:1px solid #243d4f; background:#091722; }
.market-pagination button { min-width:28px; padding:0; font-size:14px; }
.market-pagination span { min-width:88px; color:#7897a9; font-size:8px; text-align:center; }
.market-empty { margin:auto; padding:18px; display:grid; justify-items:center; gap:4px; color:#6f8b9d; text-align:center; }
.market-empty.hidden { display:none; }
.market-empty strong { color:#b9cbd6; font-size:11px; }.market-empty span { font-size:8px; }
.market-sell-tabs { flex:0 0 42px; display:flex; align-items:center; gap:5px; padding:7px 11px; border-bottom:1px solid #294154; background:#0b1822; }
.market-sell-tabs button.active { border-color:#4b8ca9; background:#163d54; color:#e1f3fb; }
.market-sell-form { width:min(650px,calc(100% - 24px)); max-height:calc(100% - 24px); overflow-y:auto; margin:12px auto; display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:16px; border:1px solid #29485c; border-radius:var(--radius-lg,8px); background:#0b1a25; scrollbar-color:#355b74 #08131d; scrollbar-width:thin; }
.market-sell-form label { display:grid; gap:5px; margin:0; color:#7795a7; font-size:8px; font-weight:800; }
.market-sell-selector,.market-sell-preview,.market-sell-form .market-primary,.market-sell-pokemon-list,.market-sell-pokemon-summary,.market-sell-form .market-publish-button { grid-column:1/-1; }
.market-sell-selector.hidden,.market-sell-pokemon-list.hidden,.market-sell-pokemon-summary.hidden,.market-confirmation-pokemon.hidden { display:none; }
.market-sell-pokemon-list { max-height:174px; overflow-y:auto; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding:2px; scrollbar-color:#355b74 #08131d; scrollbar-width:thin; }
.market-sell-pokemon-option { min-width:0; min-height:72px; display:grid; grid-template-columns:54px minmax(0,1fr); align-items:center; gap:8px; padding:7px; border:1px solid #29485c; border-radius:7px; background:#0a1924; color:#9bb2c1; text-align:left; cursor:pointer; transition:border-color .14s ease,background-color .14s ease; }
.market-sell-pokemon-option:hover { border-color:#3f6b85; background:#102535; }
.market-sell-pokemon-option:focus-visible { outline:2px solid #70b5d1; outline-offset:2px; }
.market-sell-pokemon-option.selected { border-color:#5793b0; background:#143246; box-shadow:inset 0 0 0 1px #5793b033; }
.market-sell-pokemon-option.locked { border-color:#59424a; }
.market-sell-pokemon-option > .market-pokemon-sprite-frame { width:54px; height:54px; }
.market-sell-pokemon-option-copy { min-width:0; display:grid; gap:3px; }
.market-sell-pokemon-option-copy strong,.market-sell-pokemon-option-copy span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.market-sell-pokemon-option-copy strong { color:#dceaf2; font-size:10px; }
.market-sell-pokemon-option-copy span { color:#829eaf; font-size:8px; }
.market-sell-pokemon-option-copy .market-sell-pokemon-meta { color:#63a7c4; font-size:7px; font-weight:800; text-transform:uppercase; }
.market-sell-pokemon-summary { min-height:86px; display:grid; grid-template-columns:68px minmax(0,1fr); align-items:center; gap:10px; padding:10px; border:1px solid #31546a; border-radius:7px; background:#0a1a26; }
.market-sell-pokemon-summary > .market-pokemon-sprite-frame { width:64px; height:64px; }
.market-sell-pokemon-summary > div { display:grid; gap:3px; }.market-sell-pokemon-summary strong { color:#e2edf4; font-size:12px; }.market-sell-pokemon-summary span { color:#89a6b7; font-size:8px; }
.market-sell-pokemon-summary p { grid-column:1/-1; margin:0; padding-top:7px; border-top:1px solid #263f52; color:#77a9bd; font-size:8px; }.market-sell-pokemon-summary p.blocked { color:#e3a1aa; }
.market-sell-preview { min-height:34px; display:flex; align-items:center; padding:8px 10px; border:1px solid #29465a; border-radius:5px; background:#091722; color:#8eacbd; font-size:9px; }
.market-primary { min-height:32px; border-radius:5px; font-weight:900; cursor:pointer; }
.market-publish-button { margin:0; }
.market-publish-button:active { transform:translateY(1px); }
.market-publish-button:focus-visible { outline:2px solid #8fd1ed; outline-offset:2px; }
.market-publish-button:disabled { opacity:.45; filter:grayscale(.35); cursor:not-allowed; }
.market-listing-card footer { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:8px; padding-top:7px; border-top:1px solid #223b4d; }
.market-listing-card footer span { color:#7897a9; font-size:8px; }
.market-history-list { min-height:0; flex:1 1 auto; overflow-y:auto; padding:10px; display:grid; align-content:start; gap:5px; }
.market-history-row { min-height:46px; display:grid; grid-template-columns:125px 110px minmax(0,1fr); align-items:center; gap:10px; padding:8px 10px; border:1px solid #263f52; border-radius:6px; background:#0b1a25; }
.market-history-row time { color:#66889b; font-size:8px; }.market-history-row strong { color:#70abc5; font-size:8px; }.market-history-row span { overflow:hidden; color:#a2b7c4; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.market-confirmation { position:absolute; z-index:8; inset:0; display:grid; place-items:center; padding:18px; background:#020810b8; }
.market-confirmation.hidden { display:none; }
.market-confirmation > section { width:min(430px,100%); padding:18px; border:1px solid #3b6480; border-radius:9px; background:#0d1d29; box-shadow:0 20px 55px #000c; }
.market-confirmation small { color:#67abc8; font-size:7px; font-weight:900; letter-spacing:.1em; }
.market-confirmation h3 { margin:5px 0 8px; color:#e5f0f6; font-size:16px; }.market-confirmation p { min-height:42px; margin:0; color:#9db3c1; font-size:10px; line-height:1.5; }
.market-confirmation-pokemon { display:grid; grid-template-columns:64px minmax(0,1fr); align-items:center; gap:10px; margin:10px 0; padding:9px; border:1px solid #31536a; border-radius:7px; background:#091722; }
.market-confirmation-pokemon > .market-pokemon-sprite-frame { width:60px; height:60px; }.market-confirmation-pokemon div { display:grid; gap:4px; }.market-confirmation-pokemon strong { color:#e1edf4; font-size:12px; }.market-confirmation-pokemon span { color:#88a6b8; font-size:8px; }
.market-addon-item-frame { width:60px; height:60px; display:grid; place-items:center; overflow:hidden; border:1px solid #31536a; border-radius:7px; background:#102837; }
.market-addon-item-frame > img { width:50px; height:50px; object-fit:contain; image-rendering:pixelated; }
.market-confirmation-actions { margin-top:14px; display:flex; justify-content:flex-end; gap:7px; }
.market-result-footer { flex:0 0 39px; display:grid; align-content:center; gap:2px; padding:5px 14px; border-top:1px solid #263f52; background:#0b1822; }
.market-result-footer small { color:#6993a7; font-size:6px; font-weight:900; letter-spacing:.13em; }
.market-result-footer strong { overflow:hidden; color:#c7d8e1; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:1040px) {
  .market-layout { grid-template-columns:158px minmax(0,1fr); }
  .market-listing-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .market-sidebar { padding-inline:8px; }
}
@media (max-width:820px) {
  .market-overlay { padding:6px; }
  .market-window { width:calc(100vw - 12px); height:calc(100vh - 12px); max-height:calc(100vh - 12px); }
  .market-layout { grid-template-columns:132px minmax(0,1fr); }
  .market-sidebar button { padding-left:10px; }
  .market-sidebar button span,.market-sidebar-security span { display:none; }
  .market-toolbar-primary-row { grid-template-columns:minmax(200px,1fr) minmax(125px,160px); }
  .market-search { grid-column:1/-1; }
  .market-pokemon-filter { grid-column:auto; }
  .market-toolbar-secondary-row { grid-template-columns:1fr; }
  .market-listing-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:520px) {
  .market-header { padding-left:9px; }.market-title small { display:none; }
  .market-header-balances { gap:3px; }.market-balance { min-width:66px; padding-inline:6px; }.market-balance small { display:none; }
  .market-layout { grid-template-columns:96px minmax(0,1fr); }
  .market-sidebar { gap:16px; padding:7px 5px; }.market-sidebar section > small { padding-left:5px; }
  .market-sidebar button { min-height:36px; padding:5px 6px; }.market-sidebar button:before,.market-sidebar-security { display:none; }
  .market-sidebar button strong { font-size:8px; }
  .market-toolbar { padding:7px; }
  .market-toolbar-primary-row { grid-template-columns:1fr; }
  .market-search { grid-column:1; }
  .market-filter-group { grid-template-columns:1fr 1fr; }.market-filter-group-label { grid-column:1/-1; padding-top:0; }
  .market-listing-grid { grid-template-columns:1fr; padding:7px; }
  .market-listing-card { min-height:0; }
  .market-listing-action { grid-template-columns:62px 54px minmax(80px,1fr); }
  .market-sell-form { grid-template-columns:1fr; margin:9px auto; padding:11px; }
  .market-sell-form > * { grid-column:1 !important; }
  .market-sell-pokemon-list { grid-template-columns:1fr; }
  .market-history-row { grid-template-columns:1fr auto; }.market-history-row span { grid-column:1/-1; }
}
@media (prefers-reduced-motion:reduce) {
  .market-listing-card,.market-sidebar button,.market-confirmation { scroll-behavior:auto; transition:none; }
}
.pokemon-evolution-stone > .animated-item-visual {
    grid-row: 1 / 3;
    width: 28px;
    height: 28px;
}
@keyframes animated-item-frames {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(-100%, 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
    .animated-item-visual > .animated-item-fallback { opacity: 1 !important; }
    .animated-item-visual > .animated-item-viewport { opacity: 0 !important; }
    .animated-item-sheet { animation: none !important; will-change: auto; }
}

/* Starter onboarding — laboratório em tela cheia, anterior à conexão do jogo. */
.starter-onboarding {
    --starter-blue: #4bb8ef;
    position: relative;
    width: 100vw;
    min-height: 100vh;
    overflow: hidden auto;
    color: #eef8ff;
    background:
        radial-gradient(circle at 50% 34%, rgba(47, 154, 211, .22), transparent 32%),
        radial-gradient(circle at 8% 90%, rgba(36, 115, 157, .18), transparent 26%),
        linear-gradient(145deg, #07101b 0%, #0b2132 48%, #07131f 100%);
    isolation: isolate;
}
.starter-lab-grid {
    position: fixed;
    inset: 0;
    z-index: -1;
    opacity: .18;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(86, 183, 230, .12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(86, 183, 230, .12) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(to bottom, transparent, #000 24%, #000 72%, transparent);
}
.starter-lab-header {
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 14px clamp(20px, 4vw, 72px);
    border-bottom: 1px solid rgba(110, 196, 239, .2);
    background: rgba(4, 14, 24, .68);
    box-shadow: 0 10px 40px rgba(0, 0, 0, .2);
}
.starter-lab-brand,.starter-lab-brand > span:last-child,.starter-trainer,.starter-trainer > span { display: flex; align-items: center; }
.starter-lab-brand { gap: 13px; }
.starter-lab-brand > span:last-child,.starter-trainer > span { flex-direction: column; align-items: flex-start; gap: 2px; }
.starter-lab-brand > span:last-child { flex-direction: row; align-items: center; gap: 8px; }
.starter-brand-divider { color: #477f9d; font-size: 9px; font-style: normal; line-height: 1; }
.starter-lab-brand small,.starter-trainer small,.starter-confirmation small {
    color: #73b9db;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .18em;
}
.starter-lab-brand strong { font-size: 13px; letter-spacing: .08em; }
.starter-lab-mark {
    position: relative;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 1px solid #4d9cc6;
    border-radius: 50%;
    background: linear-gradient(#d9f7ff 0 47%, #235676 47% 53%, #0c293d 53%);
    box-shadow: 0 0 24px rgba(83, 192, 240, .22);
}
.starter-lab-mark::before { content: ""; position: absolute; inset: 16px 0 auto; height: 3px; background: #173e58; }
.starter-lab-mark i { z-index: 1; width: 10px; height: 10px; border: 3px solid #173e58; border-radius: 50%; background: #e9fbff; }
.starter-trainer { gap: 18px; text-align: left; }
.starter-trainer strong { color: #fff; font-size: 13px; }
#starter-logout {
    min-height: 34px;
    padding: 0 14px;
    color: #8db5ca;
    border: 1px solid #294d62;
    border-radius: 6px;
    background: #0b2232;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .09em;
}
#starter-logout:hover,#starter-logout:focus-visible { color: #fff; border-color: #58add6; outline: none; }
.starter-lab-content {
    width: min(1120px, calc(100% - 40px));
    min-height: calc(100vh - 76px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: 0 auto;
    padding: 48px 0 118px;
}
.starter-heading { max-width: 720px; margin: 0 auto 34px; text-align: center; }
.starter-step {
    display: inline-flex;
    padding: 6px 11px;
    color: #8bd5fa;
    border: 1px solid rgba(85, 177, 222, .34);
    border-radius: 999px;
    background: rgba(17, 74, 103, .32);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .17em;
}
.starter-heading h1 { margin: 17px 0 10px; color: #f6fbff; font-size: clamp(30px, 4vw, 50px); line-height: 1; letter-spacing: -.035em; }
.starter-heading p { margin: 0; color: #99b4c4; font-size: 14px; line-height: 1.55; }
.starter-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 2vw, 24px); }
.starter-choice-card {
    --starter-accent: #53c993;
    position: relative;
    min-width: 0;
    min-height: 376px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 0;
    overflow: hidden;
    color: #eaf7ff;
    border: 1px solid rgba(103, 164, 194, .38);
    border-radius: 16px;
    background:
        radial-gradient(circle at 50% 27%, color-mix(in srgb, var(--starter-accent) 18%, transparent), transparent 34%),
        linear-gradient(180deg, rgba(17, 48, 67, .96), rgba(6, 22, 34, .98));
    box-shadow: 0 22px 46px rgba(0, 0, 0, .35), inset 0 1px rgba(255, 255, 255, .06);
    text-align: left;
    cursor: pointer;
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease, opacity 180ms ease, filter 180ms ease;
}
.starter-charmander { --starter-accent: #ef8a4b; }
.starter-squirtle { --starter-accent: #54afe8; }
.starter-choice-card:hover,.starter-choice-card:focus-visible {
    z-index: 2;
    transform: translateY(-6px) scale(1.018);
    border-color: color-mix(in srgb, var(--starter-accent) 72%, #fff);
    box-shadow: 0 28px 56px rgba(0, 0, 0, .42), 0 0 28px color-mix(in srgb, var(--starter-accent) 18%, transparent);
    outline: none;
}
.starter-choice-card.is-selected { transform: translateY(-7px); border-color: var(--starter-accent); box-shadow: 0 28px 58px rgba(0,0,0,.46), 0 0 34px color-mix(in srgb, var(--starter-accent) 25%, transparent); }
.starter-choice-card.is-muted { opacity: .45; filter: saturate(.55); transform: scale(.985); }
.starter-card-index { position: absolute; z-index: 2; top: 15px; left: 17px; color: rgba(207, 233, 246, .38); font-size: 11px; font-weight: 900; letter-spacing: .14em; }
.starter-sprite-stage {
    position: relative;
    height: 210px;
    display: grid;
    place-items: center;
    border-bottom: 1px solid rgba(108, 170, 199, .18);
}
.starter-sprite-stage::after { content: ""; position: absolute; left: 19%; right: 19%; bottom: 17px; height: 26px; border-radius: 50%; background: radial-gradient(ellipse,rgba(0,0,0,.55),transparent 70%); }
.starter-sprite-stage i { position: absolute; width: 142px; height: 142px; border: 1px solid color-mix(in srgb, var(--starter-accent) 38%, transparent); border-radius: 50%; box-shadow: inset 0 0 40px color-mix(in srgb, var(--starter-accent) 10%, transparent); }
.starter-sprite-stage img {
    position: absolute;
    z-index: 1;
    left: 50%;
    top: 50%;
    width: var(--starter-sprite-width);
    height: var(--starter-sprite-height);
    object-fit: contain;
    image-rendering: pixelated;
    translate: calc(-50% + var(--starter-sprite-offset-x)) calc(-50% + var(--starter-sprite-offset-y));
    filter: drop-shadow(0 12px 8px rgba(0,0,0,.5));
    animation: starter-idle 2.8s ease-in-out infinite;
}
.starter-card-copy { min-height: 128px; display: block; padding: 20px 22px 12px; }
.starter-card-copy > strong { display: block; color: #fff; font-size: 22px; letter-spacing: -.02em; }
.starter-card-copy > span { display: flex; gap: 5px; margin-top: 7px; }
.starter-card-copy em { padding: 3px 7px; color: var(--starter-type-color); border: 1px solid color-mix(in srgb, var(--starter-type-color) 42%, transparent); border-radius: 999px; background: color-mix(in srgb, var(--starter-type-color) 11%, transparent); font-size: 8px; font-style: normal; font-weight: 900; text-transform: uppercase; }
.starter-card-copy small { display: block; margin-top: 11px; color: #8fa9b8; font-size: 11px; line-height: 1.45; }
.starter-choice-card > b { display: block; margin: auto 22px 19px; padding-top: 13px; color: #8db6cb; border-top: 1px solid rgba(112, 171, 200, .16); font-size: 9px; letter-spacing: .16em; }
.starter-choice-card.is-selected > b { color: var(--starter-accent); }
.starter-live-status { min-height: 18px; margin: 25px 0 0; color: #7095a9; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-align: center; }
.starter-confirmation {
    position: fixed;
    z-index: 10;
    left: 50%;
    bottom: 22px;
    width: min(780px, calc(100vw - 32px));
    min-height: 92px;
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    padding: 14px 17px;
    border: 1px solid #35657e;
    border-radius: 12px;
    background: rgba(5, 22, 34, .96);
    box-shadow: 0 18px 50px rgba(0,0,0,.62), inset 0 1px rgba(255,255,255,.07);
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 24px);
    transition: opacity 180ms ease, transform 180ms ease;
}
.starter-confirmation.is-visible { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.starter-confirmation h2 { margin: 4px 0 2px; color: #f5fbff; font-size: 18px; }
.starter-confirmation p { margin: 0; color: #91acbb; font-size: 11px; }
.starter-confirmation-error { display: block; min-height: 14px; margin-top: 4px; color: #ff8d94; font-size: 10px; }
.starter-confirmation-ball,.starter-transition-ball { position: relative; border-radius: 50%; background: linear-gradient(#e75b63 0 46%, #172a38 46% 54%, #eef9fc 54%); }
.starter-confirmation-ball { width: 56px; height: 56px; box-shadow: 0 0 20px rgba(82, 177, 221, .18); }
.starter-confirmation-ball::before,.starter-transition-ball::before { content: ""; position: absolute; left: 0; right: 0; top: 46%; height: 8%; background: #172a38; }
.starter-confirmation-ball span,.starter-transition-ball span { position: absolute; z-index: 1; left: 50%; top: 50%; border: 4px solid #172a38; border-radius: 50%; background: #f5fbfd; transform: translate(-50%,-50%); }
.starter-confirmation-ball span { width: 14px; height: 14px; }
.starter-confirmation-actions { display: flex; gap: 8px; }
.starter-confirmation-actions button { min-width: 104px; height: 40px; border-radius: 6px; font-size: 9px; font-weight: 900; letter-spacing: .1em; }
#starter-cancel { color: #a3bdca; border: 1px solid #31546a; background: #0b2839; }
#starter-confirm { color: #06131c; border: 1px solid #7dd5fa; background: linear-gradient(#75d1f5,#3ca3d5); box-shadow: 0 7px 18px rgba(37,151,203,.22); }
.starter-confirmation-actions button:hover:not(:disabled),.starter-confirmation-actions button:focus-visible { filter: brightness(1.12); outline: 2px solid rgba(114, 210, 249, .45); outline-offset: 2px; }
.starter-confirmation-actions button:disabled { opacity: .58; cursor: wait; }
.starter-transition-ball { position: fixed; z-index: 20; left: 50%; top: 50%; width: 76px; height: 76px; opacity: 0; pointer-events: none; transform: translate(-50%,-50%) scale(.5); }
.starter-transition-ball span { width: 18px; height: 18px; }
.starter-onboarding.is-completing .starter-transition-ball { animation: starter-ball-close 600ms cubic-bezier(.2,.8,.2,1) forwards; }
.starter-onboarding.is-completing .starter-lab-header,.starter-onboarding.is-completing .starter-lab-content,.starter-onboarding.is-completing .starter-confirmation { animation: starter-lab-fade 560ms ease forwards; pointer-events: none; }
@keyframes starter-idle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes starter-ball-close { 0% { opacity: 0; transform: translate(-50%,-50%) scale(.5) rotate(-12deg); } 42% { opacity: 1; transform: translate(-50%,-50%) scale(1.08) rotate(0); } 72% { opacity: 1; transform: translate(-50%,-50%) scale(1); } 100% { opacity: 0; transform: translate(-50%,-50%) scale(.18); } }
@keyframes starter-lab-fade { to { opacity: 0; transform: scale(.985); } }
@media (max-width: 760px) {
    .starter-lab-header { min-height: 64px; padding: 10px 14px; }
    .starter-lab-brand > span:last-child { display: none; }
    .starter-trainer { gap: 8px; }
    .starter-lab-content { width: min(520px, calc(100% - 24px)); padding: 34px 0 170px; }
    .starter-heading { margin-bottom: 22px; }
    .starter-choice-grid { grid-template-columns: 1fr; }
    .starter-choice-card { min-height: 172px; display: grid; grid-template-columns: 148px minmax(0,1fr); }
    .starter-sprite-stage { grid-row: 1 / 3; height: 100%; border-right: 1px solid rgba(108,170,199,.18); border-bottom: 0; }
    .starter-sprite-stage img { scale: .78; }
    .starter-sprite-stage i { width: 104px; height: 104px; }
    .starter-card-copy { min-height: 0; padding: 24px 16px 8px; }
    .starter-choice-card > b { margin: 4px 16px 18px; }
    .starter-confirmation { bottom: 10px; grid-template-columns: 44px minmax(0,1fr); gap: 10px; }
    .starter-confirmation-ball { width: 42px; height: 42px; }
    .starter-confirmation-actions { grid-column: 1 / -1; }
    .starter-confirmation-actions button { flex: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .starter-choice-card,.starter-confirmation,.starter-sprite-stage img { transition: none !important; animation: none !important; }
    .starter-choice-card:hover,.starter-choice-card:focus-visible,.starter-choice-card.is-selected { transform: none; }
    .starter-onboarding.is-completing .starter-transition-ball { animation: none; opacity: 0; }
    .starter-onboarding.is-completing .starter-lab-header,.starter-onboarding.is-completing .starter-lab-content,.starter-onboarding.is-completing .starter-confirmation { animation: starter-lab-fade 120ms linear forwards; }
}

/* Addon Kits reutilizam a linguagem visual dos painéis autoritativos. */
.pokemon-addon-overlay { position:fixed; inset:0; z-index:1320; display:grid; place-items:center; padding:24px; background:#020811e3; }
.pokemon-addon-overlay.hidden { display:none; }
.pokemon-addon-window { width:min(620px,calc(100vw - 32px)); max-height:min(720px,calc(100vh - 32px)); display:grid; grid-template-rows:auto auto minmax(120px,1fr) auto auto; overflow:hidden; border:1px solid #3b6685; border-radius:14px; background:linear-gradient(160deg,#102a40,#071522); box-shadow:0 24px 70px #000b,inset 0 1px #ffffff0d; color:#e6f4ff; }
.pokemon-addon-window > header { position:relative; min-height:76px; display:flex; align-items:center; justify-content:space-between; padding:16px 64px 14px 22px; border-bottom:1px solid #294c68; }
.pokemon-addon-window > header small,.pokemon-addon-kit small { display:block; color:#6ab6d8; font-size:9px; font-weight:900; letter-spacing:.13em; }
.pokemon-addon-window > header h2 { margin:3px 0 0; font-size:20px; }
.pokemon-addon-window > header .depot-close-button { right:18px; }
.pokemon-addon-kit { display:grid; grid-template-columns:64px minmax(0,1fr); gap:14px; align-items:center; padding:16px 22px; border-bottom:1px solid #203f57; background:#0a1d2c; }
.pokemon-addon-kit > img { width:56px; height:56px; object-fit:contain; image-rendering:pixelated; filter:drop-shadow(0 5px 5px #0008); }
.pokemon-addon-kit strong { display:block; margin:3px 0; font-size:15px; text-transform:capitalize; }
.pokemon-addon-kit span { display:block; color:#91aabd; font-size:11px; line-height:1.45; }
.pokemon-addon-candidates { overflow-y:auto; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding:16px 22px; align-content:start; scrollbar-color:#437590 #081722; }
.pokemon-addon-candidates > button { min-height:82px; display:flex; align-items:center; gap:10px; padding:8px 10px; border:1px solid #294e68; border-radius:9px; background:#0b2031; color:#d9edf7; text-align:left; cursor:pointer; }
.pokemon-addon-candidates > button:hover,.pokemon-addon-candidates > button.selected { border-color:#55a7c7; background:#12344b; box-shadow:inset 0 0 0 1px #65bad733; }
.pokemon-addon-candidate-sprite { width:62px; height:62px; flex:0 0 62px; }
.pokemon-addon-candidates img { width:62px; height:62px; object-fit:contain; image-rendering:pixelated; }
.pokemon-addon-candidates span { min-width:0; }
.pokemon-addon-candidates strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
.pokemon-addon-candidates small { display:block; margin-top:5px; color:#7999ad; font-size:8px; font-weight:900; }
.pokemon-addon-status { min-height:18px; margin:0; padding:0 22px 10px; color:#89abc0; font-size:10px; }
.pokemon-addon-window > footer { display:flex; justify-content:flex-end; gap:9px; padding:13px 22px 17px; border-top:1px solid #294c68; }
.pokemon-addon-window > footer button { min-height:36px; padding:0 18px; border:1px solid #416781; border-radius:7px; background:#102b40; color:#cde7f3; font-size:9px; font-weight:900; cursor:pointer; }
.pokemon-addon-window > footer button:last-child { border-color:#3b8eae; background:#17607c; color:#f3fcff; }
.pokemon-addon-window > footer button:disabled { opacity:.42; cursor:not-allowed; }
.pokemon-premier-aura-control{width:100%;min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #315b76;border-radius:8px;background:#0b2233;color:#dff5ff;text-align:left;cursor:pointer}
.pokemon-premier-aura-control span{display:flex;flex-direction:column;gap:3px}.pokemon-premier-aura-control small{color:#75bddb;font-size:9px;font-weight:900;letter-spacing:.1em}.pokemon-premier-aura-control strong{font-size:12px}.pokemon-premier-aura-control em{color:#8edaf2;font-size:9px;font-style:normal;font-weight:900}.pokemon-premier-aura-control:hover{background:#102d42;border-color:#4d91b5}.pokemon-premier-aura-control:focus-visible{outline:2px solid #70d6f4;outline-offset:2px}
.premier-aura-window{grid-template-rows:auto auto minmax(150px,1fr) auto auto}
.premier-aura-pokemon{display:grid;grid-template-columns:104px minmax(0,1fr);align-items:center;gap:14px;margin:14px 20px 4px;padding:10px 12px;border:1px solid #294f69;border-radius:10px;background:#091d2c}.premier-aura-preview{display:block;width:104px;height:104px;image-rendering:pixelated}.premier-aura-pokemon>div{display:flex;flex-direction:column;gap:4px;min-width:0}.premier-aura-pokemon small{color:#75bddb;font-size:8px;font-weight:900;letter-spacing:.1em}.premier-aura-pokemon strong{font-size:15px}.premier-aura-pokemon em{color:#9db9c8;font-size:11px;font-style:normal}
.premier-aura-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px 20px;overflow-y:auto}.premier-aura-grid button{min-height:52px;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:9px;padding:8px 10px;border:1px solid #31556d;border-radius:8px;background:#0b2233;color:#d9eef8;text-align:left;cursor:pointer}.premier-aura-grid button>span:last-child{display:flex;min-width:0;flex-direction:column;gap:4px}.premier-aura-grid button strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.premier-aura-grid button small{color:#6eb6d4;font-size:8px;font-weight:900;letter-spacing:.08em}.premier-aura-grid button.selected{border-color:#55b8d8;background:#11364c;box-shadow:inset 0 0 0 1px #55b8d833}.premier-aura-grid button:disabled{opacity:.5;cursor:not-allowed}.premier-aura-grid button:focus-visible{outline:2px solid #70d6f4;outline-offset:1px}.premier-aura-swatch{width:24px;height:24px;flex:0 0 24px;border:1px solid #ffffff40;border-radius:7px;background:linear-gradient(135deg,var(--aura-primary),var(--aura-secondary));box-shadow:inset 0 0 0 2px #06162180,0 0 7px color-mix(in srgb,var(--aura-secondary) 58%,transparent)}.premier-aura-swatch.rainbow{background:conic-gradient(#ff4f62,#ffb83e,#f4e94b,#4cdf78,#48cfff,#9d72ff,#ff70c4,#ff4f62)}.premier-aura-swatch.no-aura{background:#081a28;box-shadow:inset 0 0 0 2px #06162180}.premier-aura-swatch.no-aura::after{content:"";display:block;width:14px;height:1px;margin:11px auto 0;background:#69869a;transform:rotate(-35deg)}
@media(max-width:560px){.premier-aura-grid{grid-template-columns:1fr}.premier-aura-pokemon{margin-inline:12px}.premier-aura-grid{padding-inline:12px}}
.inventory-slot[data-addon-item-id] { cursor:pointer; transition:border-color .14s ease,background .14s ease,box-shadow .14s ease; }
.inventory-slot[data-addon-item-id] > *,.inventory-slot[data-addon-item-id]::before,.inventory-slot[data-addon-item-id]::after { pointer-events:none; cursor:inherit; }
.inventory-slot[data-addon-item-id]:hover { border-color:#4f91ad; background:#102c3e; box-shadow:inset 0 0 0 1px #66bed72b; }
.inventory-slot[data-addon-item-id]:focus-visible { z-index:2; border-color:#6bb7d2; outline:2px solid #6bb7d2; outline-offset:2px; }
.inventory-slot[data-addon-item-id]:disabled { cursor:not-allowed; }
.inventory-slot:not([data-addon-item-id]) { cursor:default; }
.inventory-slot[data-addon-item-id]:after { content:"USAR"; position:absolute; left:5px; top:5px; z-index:2; padding:2px 4px; border-radius:3px; background:#12617d; color:#dcf7ff; font-size:6px; font-weight:900; letter-spacing:.06em; }
.inventory-addon-tooltip {
  position:fixed;
  z-index:1500;
  width:min(250px,calc(100vw - 16px));
  display:grid;
  gap:5px;
  padding:11px 12px;
  pointer-events:none;
  border:1px solid #3b728f;
  border-radius:8px;
  background:#081a28f7;
  box-shadow:0 12px 30px #0009,inset 0 1px 0 #ffffff0c;
  color:#9eb8c8;
}
.inventory-addon-tooltip.hidden { display:none; }
.inventory-addon-tooltip > strong { margin-bottom:2px; overflow:hidden; color:#e4f2f8; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.inventory-addon-tooltip > span { display:grid; grid-template-columns:auto minmax(0,1fr); gap:5px; align-items:baseline; font-size:8px; line-height:1.35; }
.inventory-addon-tooltip > span.hidden { display:none; }
.inventory-addon-tooltip b { color:#629fba; font-size:7px; font-weight:900; text-transform:uppercase; }
.inventory-addon-tooltip em { overflow:hidden; color:#c0d4df; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.inventory-addon-tooltip small { padding-top:4px; border-top:1px solid #26465a; color:#72abc2; font-size:8px; font-weight:800; }
.inventory-addon-tooltip small + small { padding-top:0; border-top:0; color:#66889b; font-size:7px; font-weight:600; }
@media (max-width:620px) {
  .pokemon-addon-overlay { padding:10px; }
  .pokemon-addon-window { width:100%; max-height:calc(100vh - 20px); }
  .pokemon-addon-candidates { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .pokemon-addon-window * { transition:none !important; }
}

/* Time: reduz somente o espaço ao redor do conteúdo, sem escalar sprites ou barras. */
.battle-party-rail.team-bar-ui:not(.is-minimized) {
  --team-section-gap: 6px;
  box-sizing: border-box !important;
  padding: 0 10px 10px !important;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .team-bar-header {
  height: 64px !important;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .team-slot-list {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  width: 100% !important;
  margin: var(--team-section-gap) 0 0 !important;
  padding: 0 !important;
  gap: var(--team-section-gap) !important;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .team-slot-item,
.battle-party-rail.team-bar-ui:not(.is-minimized) .battle-pokemon-card.team-slot-item,
.battle-party-rail.team-bar-ui:not(.is-minimized) .battle-party-empty.team-slot-item {
  --team-card-padding-x: 6px;
  --team-card-padding-y: 6px;
  --team-sprite-size: 48px;
  --team-column-gap: 10px;
  --team-row-gap: 3px;
  --team-status-gap: 2px;
  --team-bar-height: 14px;
  --team-inline-gap: 5px;
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: var(--team-sprite-size) minmax(0, 1fr) !important;
  column-gap: var(--team-column-gap) !important;
  align-items: center !important;
  padding: var(--team-card-padding-y) var(--team-card-padding-x) !important;
  height: 80px !important;
  min-height: 80px !important;
  max-height: 80px !important;
  flex-basis: 80px !important;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .team-sprite-frame,
.battle-party-rail.team-bar-ui:not(.is-minimized) .battle-pokemon-card .team-sprite-frame {
  position: static !important;
  grid-column: 1 !important;
  width: var(--team-sprite-size) !important;
  height: var(--team-sprite-size) !important;
  margin: 0 !important;
  align-self: center !important;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .team-slot-content {
  grid-column: 2;
  align-self: center;
  width: 100%;
  min-width: 0;
  height: 66px;
  display: grid;
  grid-template-rows: 14px 16px 30px;
  row-gap: var(--team-row-gap);
  align-items: stretch;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .team-slot-top {
  position: static !important;
  inset: auto !important;
  width: 100% !important;
  height: 14px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto auto !important;
  column-gap: var(--team-inline-gap) !important;
  align-items: center !important;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .team-slot-top > strong {
  grid-column: 1;
  font-size: 11px !important;
  line-height: 14px !important;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .team-slot-top > .team-slot-role {
  grid-column: 2;
  justify-self: center;
  box-sizing: border-box;
  height: 14px;
  min-height: 14px;
  padding-block: 0;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .team-slot-top > em {
  grid-column: 3;
  justify-self: end;
  box-sizing: border-box;
  height: 14px;
  display: inline-flex;
  align-items: center;
  padding-block: 0 !important;
  line-height: 12px !important;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .team-quality-row {
  position: static;
  width: 100%;
  min-width: 0;
  height: 16px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .pokemon-quality-summary,
.drawer-view[data-view="pokemon"] .pokemon-quality-summary {
  gap: 6px;
  font-size: 8px;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .pokemon-quality-summary {
  width: 100%;
  min-width: 0;
  flex-wrap: nowrap;
  height: 16px;
  gap: var(--team-inline-gap);
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .pokemon-quality-tier,
.drawer-view[data-view="pokemon"] .pokemon-quality-tier {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 16px;
  min-height: 16px;
  max-height: 16px;
  padding: 0 9px;
  border-color: #687d8b;
  background: #172a37;
  color: #e0e8ed;
  font-size: 8px;
  font-weight: 900;
  line-height: 8px;
  box-shadow: inset 0 1px 0 #ffffff0d;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .pokemon-quality-values,
.drawer-view[data-view="pokemon"] .pokemon-quality-values {
  display: contents;
  color: #91a8b8;
  font-size: 7px;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .pokemon-quality-values > *,
.drawer-view[data-view="pokemon"] .pokemon-quality-values > * {
  line-height: 16px;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .pokemon-quality-tier[data-tier="uncommon"],
.drawer-view[data-view="pokemon"] .pokemon-quality-tier[data-tier="uncommon"] { border-color:#4b956a; background:#123624; color:#9ce3b4; }
.battle-party-rail.team-bar-ui:not(.is-minimized) .pokemon-quality-tier[data-tier="rare"],
.drawer-view[data-view="pokemon"] .pokemon-quality-tier[data-tier="rare"] { border-color:#4c85bd; background:#112e48; color:#91c9ff; }
.battle-party-rail.team-bar-ui:not(.is-minimized) .pokemon-quality-tier[data-tier="epic"],
.drawer-view[data-view="pokemon"] .pokemon-quality-tier[data-tier="epic"] { border-color:#8a61b3; background:#302044; color:#ddaaff; }
.battle-party-rail.team-bar-ui:not(.is-minimized) .pokemon-quality-tier[data-tier="legendary"],
.drawer-view[data-view="pokemon"] .pokemon-quality-tier[data-tier="legendary"] { border-color:#a98538; background:#392b10; color:#ffdc7b; }
.battle-party-rail.team-bar-ui:not(.is-minimized) .team-status-bars {
  position: static !important;
  inset: auto !important;
  width: 100% !important;
  height: 30px !important;
  display: grid !important;
  grid-template-rows: repeat(2, var(--team-bar-height)) !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: var(--team-status-gap) !important;
  align-items: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .team-status-bar {
  width: 100% !important;
  min-width: 0 !important;
  height: var(--team-bar-height) !important;
  min-height: var(--team-bar-height) !important;
  max-height: var(--team-bar-height) !important;
  flex-basis: var(--team-bar-height) !important;
  margin: 0 !important;
}
.battle-party-rail.team-bar-ui:not(.is-minimized) .team-status-bar > b,
.battle-party-rail.team-bar-ui:not(.is-minimized) #battle-hp-copy,
.battle-party-rail.team-bar-ui:not(.is-minimized) #battle-pokemon-exp {
  height: var(--team-bar-height) !important;
  padding: 0 6px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 7px !important;
  text-align: center !important;
}

.drawer-view[data-view="pokemon"] .pokemon-card-meta-row > small {
  align-self: center;
  margin-top: 0 !important;
  line-height: 18px;
}

@media (max-width: 620px) {
  .pokemon-individual-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pokemon-card-meta-row > small { flex-basis:100%; }
}


/* ============================================================
   POKEORIGINS OUTFITS — V8 FINAL
   Somente regras específicas do sistema de outfits.
   ============================================================ */

/* LookType técnico oculto da UI */
.outfit-card-copy small,
.outfit-current span {
  display: none !important;
}

/* Janela Escolher Outfit: tamanho fixo + scroll só na grade */
.outfit-window {
  width: min(620px, calc(100vw - 32px)) !important;
  height: min(720px, calc(100vh - 40px)) !important;
  max-height: calc(100vh - 40px) !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}
.outfit-window > header,
.outfit-current,
.outfit-footer {
  flex: 0 0 auto !important;
}
.outfit-grid {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  align-content: start !important;
  padding: 10px 16px 16px !important;
  scrollbar-width: thin;
  scrollbar-color: #355b7a transparent;
}
.outfit-grid::-webkit-scrollbar { width: 7px; }
.outfit-grid::-webkit-scrollbar-track { background: transparent; }
.outfit-grid::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: #355b7a;
}
.outfit-grid::-webkit-scrollbar-thumb:hover { background: #47799c; }
.outfit-footer {
  position: relative !important;
  z-index: 2 !important;
  margin-top: 0 !important;
  background: #0b1522 !important;
}
@media (max-height:760px) {
  .outfit-window {
    height: calc(100vh - 20px) !important;
    max-height: calc(100vh - 20px) !important;
  }
  .outfit-grid {
    padding-top: 8px !important;
    padding-bottom: 10px !important;
  }
  .outfit-card { height: 126px !important; }
  .outfit-card-sprite { width: 58px !important; height: 58px !important; }
  .outfit-card-sprite img { width: 48px !important; height: 48px !important; }
}
@media (max-width:640px) {
  .outfit-window {
    width: calc(100vw - 16px) !important;
    height: calc(100vh - 16px) !important;
    max-height: calc(100vh - 16px) !important;
  }
  .outfit-grid {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
}

/* Origins Outfit #015 / LookType 53759:
   Loja e janela de escolha usam a frente física (direção 0). */
.diamond-product-art > img[src*="creature-player-outfit-53759-2-0.png"],
.outfit-card-sprite img[src*="creature-player-outfit-53759-2-0.png"],
.outfit-preview-frame img[src*="creature-player-outfit-53759-2-0.png"] {
  content: url("/game-data/assets/creature-player-outfit-53759-0-0.png");
}
.diamond-product-art > img[src*="creature-player-outfit-53759-2-1.png"],
.outfit-card-sprite img[src*="creature-player-outfit-53759-2-1.png"],
.outfit-preview-frame img[src*="creature-player-outfit-53759-2-1.png"] {
  content: url("/game-data/assets/creature-player-outfit-53759-0-1.png");
}
.diamond-product-art > img[src*="creature-player-outfit-53759-2-2.png"],
.outfit-card-sprite img[src*="creature-player-outfit-53759-2-2.png"],
.outfit-preview-frame img[src*="creature-player-outfit-53759-2-2.png"] {
  content: url("/game-data/assets/creature-player-outfit-53759-0-2.png");
}

/* Novas #019-#027: catálogo sempre frontal (direção 2 / frame 0). */

.diamond-product-art > img[src*="creature-player-outfit-53915-0-0.png"],
.outfit-card-sprite img[src*="creature-player-outfit-53915-0-0.png"],
.outfit-preview-frame img[src*="creature-player-outfit-53915-0-0.png"] {
  content: url("/game-data/assets/creature-player-outfit-53915-2-0.png");
}

.diamond-product-art > img[src*="creature-player-outfit-53916-0-0.png"],
.outfit-card-sprite img[src*="creature-player-outfit-53916-0-0.png"],
.outfit-preview-frame img[src*="creature-player-outfit-53916-0-0.png"] {
  content: url("/game-data/assets/creature-player-outfit-53916-2-0.png");
}

.diamond-product-art > img[src*="creature-player-outfit-53917-0-0.png"],
.outfit-card-sprite img[src*="creature-player-outfit-53917-0-0.png"],
.outfit-preview-frame img[src*="creature-player-outfit-53917-0-0.png"] {
  content: url("/game-data/assets/creature-player-outfit-53917-2-0.png");
}

.diamond-product-art > img[src*="creature-player-outfit-53918-0-0.png"],
.outfit-card-sprite img[src*="creature-player-outfit-53918-0-0.png"],
.outfit-preview-frame img[src*="creature-player-outfit-53918-0-0.png"] {
  content: url("/game-data/assets/creature-player-outfit-53918-2-0.png");
}

.diamond-product-art > img[src*="creature-player-outfit-53919-0-0.png"],
.outfit-card-sprite img[src*="creature-player-outfit-53919-0-0.png"],
.outfit-preview-frame img[src*="creature-player-outfit-53919-0-0.png"] {
  content: url("/game-data/assets/creature-player-outfit-53919-2-0.png");
}

.diamond-product-art > img[src*="creature-player-outfit-53920-0-0.png"],
.outfit-card-sprite img[src*="creature-player-outfit-53920-0-0.png"],
.outfit-preview-frame img[src*="creature-player-outfit-53920-0-0.png"] {
  content: url("/game-data/assets/creature-player-outfit-53920-2-0.png");
}

.diamond-product-art > img[src*="creature-player-outfit-53921-0-0.png"],
.outfit-card-sprite img[src*="creature-player-outfit-53921-0-0.png"],
.outfit-preview-frame img[src*="creature-player-outfit-53921-0-0.png"] {
  content: url("/game-data/assets/creature-player-outfit-53921-2-0.png");
}

.diamond-product-art > img[src*="creature-player-outfit-53922-0-0.png"],
.outfit-card-sprite img[src*="creature-player-outfit-53922-0-0.png"],
.outfit-preview-frame img[src*="creature-player-outfit-53922-0-0.png"] {
  content: url("/game-data/assets/creature-player-outfit-53922-2-0.png");
}

.diamond-product-art > img[src*="creature-player-outfit-53923-0-0.png"],
.outfit-card-sprite img[src*="creature-player-outfit-53923-0-0.png"],
.outfit-preview-frame img[src*="creature-player-outfit-53923-0-0.png"] {
  content: url("/game-data/assets/creature-player-outfit-53923-2-0.png");
}

/* Perfil: apresenta somente os dados autoritativos já sincronizados no cliente. */
.player-profile-window {
  width:min(500px,calc(100vw - 28px));
  max-height:min(690px,calc(100vh - 36px));
}
.player-profile-content {
  display:flex;
  flex-direction:column;
  gap:13px;
  min-height:0;
  padding:15px 16px 18px;
  overflow:auto;
  scrollbar-color:#355b72 #081722;
  scrollbar-width:thin;
}
.player-profile-identity {
  padding:12px 14px;
  border:1px solid #294b64;
  border-radius:8px;
  background:linear-gradient(135deg,#102c42,#0b1c2a);
  box-shadow:inset 0 1px 0 #ffffff0d;
}
.player-profile-identity small,
.player-profile-section > header small {
  display:block;
  color:#769bb4;
  font-size:8px;
  font-weight:900;
  letter-spacing:.12em;
}
.player-profile-identity strong {
  display:block;
  margin-top:4px;
  overflow:hidden;
  color:#edf6fc;
  font-size:19px;
  line-height:1.1;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.player-profile-section > header { margin-bottom:6px; }
.player-profile-progress {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px 10px;
  padding:10px 12px;
  border:1px solid #233f54;
  border-radius:8px;
  background:#091925;
}
.player-profile-progress > div { min-width:0; }
.player-profile-progress span { display:block; color:#6f90a6; font-size:8px; font-weight:850; letter-spacing:.07em; }
.player-profile-progress strong { display:block; margin-top:3px; overflow:hidden; color:#dcecf6; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.player-profile-exp-track {
  grid-column:1 / -1;
  height:7px;
  overflow:hidden;
  border-radius:4px;
  background:#04101a;
  box-shadow:inset 0 1px 3px #000a;
}
.player-profile-exp-track i {
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#219fca,#63d8f5);
  box-shadow:0 0 7px #55cde466;
  transition:width .2s ease;
}
.player-profile-stat-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin:0;
}
.player-profile-stat-grid > div {
  min-width:0;
  padding:9px 10px;
  border:1px solid #233f54;
  border-radius:7px;
  background:#091925;
}
.player-profile-stat-grid dt { color:#66899f; font-size:7px; font-weight:900; letter-spacing:.075em; }
.player-profile-stat-grid dd { margin:4px 0 0; overflow:hidden; color:#dcecf6; font-size:12px; font-weight:850; text-overflow:ellipsis; white-space:nowrap; }
.player-profile-stat-grid > div:nth-child(2) dd { color:#a9d9ee; }
@media (max-width:520px) {
  .player-profile-window { width:calc(100vw - 20px); max-height:calc(100vh - 20px); }
  .player-profile-content { padding:12px; }
  .player-profile-identity strong { font-size:17px; }
}

/* Clan / Mastery V1 */
.drawer-subtitle { display:block; margin-top:2px; color:#7694a9; font-size:7px; font-weight:800; letter-spacing:.06em; }
.game-drawer.mastery-themed-header > header { box-shadow:inset 0 -2px 0 var(--mastery-accent); }
.game-drawer.mastery-themed-header #drawer-title { color:var(--mastery-accent); }
.game-drawer.mastery-expanded { width:min(900px,calc(100vw - 36px)); max-width:900px; }
.mastery-view.active { display:flex; min-height:0; overflow:hidden; padding:0; }
.mastery-view.active .mastery-panel { animation:mastery-panel-enter .19s ease-out both; }
.mastery-panel {
  width:100%;
  min-height:0;
  padding:16px 18px 20px;
  overflow:auto;
  scrollbar-color:#355b72 #081722;
  scrollbar-width:thin;
}
.mastery-loading { display:grid; min-height:280px; place-content:center; gap:10px; color:#7898ad; text-align:center; }
.mastery-loading span { width:28px; height:28px; margin:auto; border:3px solid #1d4058; border-top-color:#64c9ec; border-radius:50%; animation:spin .8s linear infinite; }
.mastery-intro,.mastery-overview {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:14px 16px;
  border:1px solid #294a62;
  border-radius:9px;
  background:linear-gradient(135deg,#102c42,#091a29);
}
.mastery-intro small,.mastery-overview small,.mastery-card small,.mastery-mission small,.mastery-bonus-grid small {
  color:#6e9ab4;
  font-size:7px;
  font-weight:900;
  letter-spacing:.11em;
}
.mastery-intro strong { display:block; margin:3px 0; color:#eff8ff; font-size:18px; }
.mastery-intro p,.mastery-overview p { margin:0; color:#89a8bb; font-size:10px; line-height:1.45; }
.mastery-level-lock { flex:none; padding:7px 9px; border:1px solid #564a34; border-radius:5px; color:#d3b376; font-size:8px; font-weight:900; }
.mastery-level-lock.is-unlocked { border-color:#2c8067; color:#73dcba; }
.mastery-catalog { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-top:10px; }
.mastery-card,.mastery-mission {
  min-width:0;
  border:1px solid #263f53;
  border-radius:8px;
  background:#091925;
  box-shadow:inset 0 1px 0 #ffffff08;
}
.mastery-card { display:flex; flex-direction:column; min-height:174px; padding:12px; }
.mastery-themed { --mastery-accent:#68b9d8; --mastery-accent-soft:#173b50; }
.mastery-card.mastery-themed { border-top:2px solid var(--mastery-accent); }
.mastery-card.mastery-themed:hover { border-color:var(--mastery-accent); box-shadow:inset 0 1px 0 #ffffff0a,0 0 0 1px var(--mastery-accent-soft); }
.mastery-card header,.mastery-mission header { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.mastery-card header strong { color:#e7f3fb; font-size:14px; }
.mastery-card p { flex:1; margin:10px 0; color:#7798ad; font-size:9px; line-height:1.45; }
.mastery-card dl { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin:0 0 10px; }
.mastery-card dl div { min-width:0; padding:6px; border-radius:5px; background:#06131e; }
.mastery-card dt { color:#52758b; font-size:6px; font-weight:900; }
.mastery-card dd { margin:2px 0 0; overflow:hidden; color:#b8d0df; font-size:8px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.mastery-action {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:0 13px;
  font-family:inherit;
  line-height:1;
  text-align:center;
  cursor:pointer;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease,filter .15s ease;
}
.mastery-action:hover:not(:disabled) { filter:brightness(1.12); }
.mastery-action:focus-visible { outline:2px solid #68c9ee; outline-offset:2px; }
.mastery-action:disabled { opacity:.42; filter:saturate(.45); cursor:not-allowed; }
.mastery-themed .secondary-action.mastery-action:not(:disabled) { border-color:var(--mastery-accent); }
.mastery-action-danger { border:1px solid #704352; border-radius:var(--radius-6); background:#351d2a; color:#dfa8b5; font-size:8px; font-weight:900; letter-spacing:.06em; }
.mastery-action-danger:hover:not(:disabled) { border-color:#9a5367; background:#482332; color:#f1bac7; }
.mastery-heading { min-width:0; }
.mastery-title-row { display:flex; align-items:center; flex-wrap:wrap; gap:5px; min-width:0; margin-top:3px; }
.mastery-types { display:inline-flex; align-items:center; flex-wrap:wrap; justify-content:flex-start; gap:3px; }
.mastery-type { display:inline-flex; align-items:center; justify-content:center; min-height:16px; padding:0 5px; border:1px solid #35556b; border-radius:4px; background:#102334; color:#a8c4d6; font-size:6px; font-style:normal; line-height:1; letter-spacing:.05em; text-align:center; text-transform:uppercase; }
.mastery-type-fire { border-color:#81443c; color:#f59a81; }.mastery-type-water,.mastery-type-ice { border-color:#386f8b; color:#8fd8ef; }
.mastery-type-grass,.mastery-type-bug { border-color:#3d7150; color:#8fd3a1; }.mastery-type-electric,.mastery-type-steel { border-color:#7b7040; color:#ead47b; }
.mastery-type-ghost,.mastery-type-poison,.mastery-type-psychic,.mastery-type-dark { border-color:#684b7c; color:#c89be2; }
.mastery-type-fighting,.mastery-type-normal,.mastery-type-fairy { border-color:#79545d; color:#e3abb8; }.mastery-type-ground,.mastery-type-rock { border-color:#756342; color:#d8c18c; }
.mastery-type-flying,.mastery-type-dragon { border-color:#466888; color:#a6cae8; }
.mastery-overview { align-items:flex-start; flex-wrap:wrap; }
.mastery-active-theme { min-width:0; }
.mastery-active-theme .mastery-overview { position:relative; overflow:hidden; border-top:3px solid var(--mastery-accent); }
.mastery-active-theme .mastery-overview::before {
  position:absolute;
  z-index:1;
  top:0;
  left:0;
  width:18%;
  height:2px;
  opacity:.32;
  background:linear-gradient(90deg,transparent,var(--mastery-accent),transparent);
  transform:translateX(-120%);
  animation:mastery-accent-sweep 4.2s ease-in-out infinite;
  pointer-events:none;
  content:'';
}
.mastery-emblem { position:absolute; top:7px; right:18px; color:var(--mastery-accent); font-size:36px; font-weight:950; letter-spacing:-.06em; opacity:.065; pointer-events:none; user-select:none; animation:mastery-emblem-float 3.4s ease-in-out infinite; transform-origin:center; }
.mastery-active-theme[data-mastery-theme="blaze"] .mastery-emblem,
.mastery-active-theme[data-mastery-theme="vital"] .mastery-emblem { animation-name:mastery-emblem-pulse; animation-duration:3s; }
.mastery-active-theme[data-mastery-theme="voltagic"] .mastery-emblem,
.mastery-active-theme[data-mastery-theme="avalanche"] .mastery-emblem { animation-name:mastery-emblem-shimmer; animation-duration:3.7s; }
.mastery-active-theme[data-mastery-theme="spectrum"] .mastery-emblem,
.mastery-active-theme[data-mastery-theme="zen"] .mastery-emblem { animation-name:mastery-emblem-breathe; animation-duration:4s; }
.mastery-active-theme[data-mastery-theme="heremit"] .mastery-emblem { animation-duration:4.8s; }
.mastery-overview > header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; width:100%; }
.mastery-overview h3 { margin:0; color:#edf8ff; font-size:20px; line-height:1.15; }
.mastery-active-theme .mastery-overview h3 { color:var(--mastery-accent); }
.mastery-overview > header > span:last-child { min-width:140px; padding:7px 9px; border-radius:6px; background:#06131e; text-align:right; }
.mastery-active-theme .mastery-overview > header > span:last-child { animation:mastery-rank-highlight .62s ease-out both; }
.mastery-overview > header > span:last-child strong { display:block; margin-top:3px; color:#9bdcf1; font-size:11px; }
.mastery-active-theme .mastery-overview > header > span:last-child strong,
.mastery-active-theme .mastery-bonus-grid strong { color:var(--mastery-accent); }
.mastery-overview > p { flex:1 1 280px; }
.mastery-bonus-grid { display:grid; grid-template-columns:1fr 1fr; flex:0 1 330px; gap:7px; }
.mastery-bonus-grid > span { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:2px 8px; padding:8px 10px; border:1px solid #25465d; border-radius:6px; background:#071722; }
.mastery-bonus-grid strong { grid-row:1 / 3; grid-column:2; color:#61d2f4; font-size:14px; text-align:right; }
.mastery-bonus-grid em { color:#769cb1; font-size:7px; font-style:normal; }
.mastery-rank-level { width:100%; padding:7px 9px; border:1px solid #5c4c30; border-radius:5px; color:#d9b978; background:#211b10; font-size:8px; }
.mastery-rank-progress { width:100%; min-width:0; padding:7px 9px; border:1px solid #253f52; border-radius:6px; background:#071722; }
.mastery-rank-progress-label { display:block; margin-bottom:6px; color:var(--mastery-accent); font-size:7px; font-weight:900; letter-spacing:.11em; }
.mastery-rank-progress ol { display:flex; align-items:center; min-width:0; margin:0; padding:0; list-style:none; }
.mastery-rank-progress li { display:flex; align-items:center; min-width:0; color:#506b7d; font-size:7px; font-weight:800; white-space:nowrap; }
.mastery-rank-progress li:not(:last-child) { flex:1; }
.mastery-rank-progress li:not(:last-child)::after { height:1px; min-width:5px; flex:1; margin:0 5px; background:#294354; content:''; }
.mastery-rank-progress li i { margin-right:3px; color:#506b7d; font-style:normal; }
.mastery-rank-progress li.is-complete { color:#7ead9e; }
.mastery-rank-progress li.is-complete i { color:#65bd9c; }
.mastery-rank-progress li.is-current { color:var(--mastery-accent); font-weight:900; }
.mastery-rank-progress li.is-current i { color:var(--mastery-accent); }
.mastery-rank-progress li.is-complete,
.mastery-rank-progress li.is-current { animation:mastery-rank-enter .28s ease-out both; }
.mastery-rank-progress li:nth-child(2) { animation-delay:45ms; }
.mastery-rank-progress li:nth-child(3) { animation-delay:90ms; }
.mastery-rank-progress li:nth-child(4) { animation-delay:135ms; }
.mastery-rank-progress li:nth-child(5) { animation-delay:180ms; }
.mastery-rank-progress li:nth-child(6) { animation-delay:225ms; }
.mastery-missions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:10px; }
.mastery-mission { padding:11px; }
.mastery-mission.is-locked { opacity:.58; }
.mastery-mission.is-complete { border-color:#286c59; }
.mastery-active-theme .mastery-mission.is-complete { animation:mastery-complete-flash .55s ease-out both; }
.mastery-active-theme .mastery-mission:not(.is-locked):not(.is-complete) { animation:mastery-active-border 2.8s ease-in-out infinite; }
.mastery-active-theme .mastery-mission:not(.is-locked):not(.is-complete) header > span { color:var(--mastery-accent); background:var(--mastery-accent-soft); }
.mastery-mission header > span { display:grid; width:25px; height:25px; flex:none; place-items:center; border-radius:50%; background:#102d40; color:#78cce9; font-size:8px; font-weight:900; }
.mastery-mission header > div { flex:1; min-width:0; }
.mastery-mission header strong { display:block; margin-top:1px; color:#e0edf5; font-size:11px; }
.mastery-mission header > b { color:#aac4d4; font-size:9px; }
.mastery-mission > p { margin:8px 0 7px; color:#7898ac; font-size:8px; line-height:1.4; }
.mastery-progress-track { display:block; width:100%; height:6px; overflow:hidden; border-radius:4px; background:#03101a; }
.mastery-progress-track i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#2797bf,#60d1e9); transition:width .34s ease-out; }
.mastery-active-theme .mastery-progress-track i { background:var(--mastery-accent); }
.mastery-loot-action { display:flex; align-items:center; gap:7px; margin-top:8px; }
.mastery-loot-action img { width:28px; height:28px; object-fit:contain; image-rendering:pixelated; }
.mastery-loot-action button { flex:1; }
.mastery-challenge > button { width:100%; margin-top:8px; }
.mastery-challenge-runtime { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:7px; margin-top:8px; }
.mastery-challenge-runtime > em { color:#53758a; font-size:8px; font-style:normal; font-weight:900; }
.mastery-challenge-runtime > p { grid-column:1 / -1; margin:0; color:#8aabba; font-size:7px; text-align:center; }
.mastery-fighter { min-width:0; }
.mastery-fighter > span { display:block; min-width:0; }
.mastery-fighter strong { display:block; overflow:hidden; color:#d5e6ef; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.mastery-fighter > b { display:block; margin:3px 0; color:#7595a8; font-size:6px; font-weight:800; }
.mastery-complete { margin-top:10px; padding:28px; border:1px solid #2d6657; border-radius:8px; color:#8bd6bd; text-align:center; }
.mastery-complete span { display:block; margin-top:4px; color:#749c91; font-size:9px; }
.mastery-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; padding-top:10px; border-top:1px solid #243b4c; }
.mastery-footer span { color:#6f899a; font-size:8px; }

.mastery-battle-overlay {
  position:fixed;
  z-index:120;
  inset:0;
  display:grid;
  place-items:center;
  padding:20px;
  background:#020811c9;
  backdrop-filter:blur(2px);
}
.mastery-battle-window {
  position:relative;
  width:min(820px,calc(100vw - 32px));
  max-height:calc(100vh - 32px);
  overflow:auto;
  border:1px solid #34546a;
  border-top:3px solid var(--mastery-accent);
  border-radius:11px;
  background:#071521;
  box-shadow:0 24px 70px #000d,inset 0 1px 0 #ffffff0d;
  animation:mastery-battle-enter .2s ease-out both;
}
.mastery-battle-header { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 16px; border-bottom:1px solid #294357; background:#0b2030; }
.mastery-battle-header small { display:block; color:var(--mastery-accent); font-size:7px; font-weight:900; letter-spacing:.12em; }
.mastery-battle-header h2 { margin:3px 0 0; color:#edf7fd; font-size:17px; }
.mastery-battle-header > span { color:var(--mastery-accent); font-size:10px; font-weight:950; letter-spacing:.1em; opacity:.8; }
.mastery-battle-header > span b { display:inline-flex; align-items:center; min-height:20px; margin-right:9px; padding:0 7px; color:#d4bd80; border:1px solid #75633a; border-radius:4px; background:#2b2414; font-size:6px; letter-spacing:.08em; vertical-align:middle; }
.mastery-battle-arena {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:18px;
  min-height:350px;
  padding:22px 28px;
  overflow:hidden;
  background:radial-gradient(circle at 50% 78%,var(--mastery-accent-soft),transparent 43%),linear-gradient(180deg,#0b2030,#07131e);
}
.mastery-battle-arena::after { position:absolute; left:11%; right:11%; bottom:25%; height:40px; border-radius:50%; background:#020a1180; box-shadow:0 0 40px var(--mastery-accent-soft); content:''; }
.mastery-battle-watermark { position:absolute; top:42%; left:50%; color:var(--mastery-accent); font-size:64px; font-weight:950; letter-spacing:-.07em; opacity:.035; transform:translate(-50%,-50%); pointer-events:none; }
.mastery-battle-fighter { position:relative; z-index:2; display:flex; min-width:0; flex-direction:column; align-items:center; gap:10px; }
.mastery-battle-sprite { position:relative; display:grid; width:180px; height:180px; place-items:center; }
.mastery-battle-sprite img { width:160px; height:160px; object-fit:contain; image-rendering:pixelated; filter:drop-shadow(0 12px 8px #0008); }
.mastery-battle-fighter-copy { width:min(100%,250px); padding:9px 11px; border:1px solid #315069; border-radius:7px; background:#071722e8; box-shadow:inset 0 1px 0 #ffffff0a; }
.mastery-battle-fighter-copy header { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.mastery-battle-fighter-copy strong { overflow:hidden; color:#e5f0f7; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.mastery-battle-fighter-copy header span { flex:none; color:#91acbd; font-size:7px; font-weight:900; }
.mastery-battle-fighter-copy small { display:block; margin:3px 0 6px; color:#66879c; font-size:7px; font-weight:800; }
.mastery-battle-hp-track { width:100%; height:8px; overflow:hidden; border:1px solid #142b39; border-radius:5px; background:#020b12; }
.mastery-battle-hp-track i { display:block; width:100%; height:100%; border-radius:inherit; background:linear-gradient(90deg,#28a866,#62dc91); transition:width .36s ease-out; }
.mastery-battle-fighter-copy > b { display:block; margin-top:4px; color:#8da7b8; font-size:7px; text-align:right; }
.mastery-battle-versus { position:relative; z-index:3; display:grid; width:42px; height:42px; place-items:center; color:var(--mastery-accent); border:1px solid var(--mastery-accent); border-radius:50%; background:#07131e; box-shadow:0 0 18px var(--mastery-accent-soft); font-size:13px; font-style:normal; font-weight:950; }
.mastery-battle-damage { position:absolute; z-index:5; top:18px; left:50%; color:#ff9aa8; font-size:18px; font-weight:950; text-shadow:0 2px 5px #000; transform:translateX(-50%); pointer-events:none; }
.mastery-battle-fighter.is-player.is-attacking .mastery-battle-sprite { animation:mastery-battle-attack-left .24s ease-out; }
.mastery-battle-fighter.is-opponent.is-attacking .mastery-battle-sprite { animation:mastery-battle-attack-right .24s ease-out; }
.mastery-battle-fighter.is-hit .mastery-battle-sprite { animation:mastery-battle-hit .2s ease-out; }
.mastery-battle-fighter.is-hit .mastery-battle-damage,
.mastery-battle-fighter.is-ko .mastery-battle-damage { animation:mastery-battle-damage .42s ease-out both; }
.mastery-battle-fighter.is-ko .mastery-battle-sprite img { opacity:.2; transform:translateY(8px); transition:opacity .25s ease,transform .25s ease; }
.mastery-battle-fighter.is-entering .mastery-battle-sprite { animation:mastery-battle-fighter-enter .3s ease-out both; }
.mastery-battle-log { display:flex; min-height:66px; max-height:94px; flex-direction:column; justify-content:flex-end; gap:3px; padding:9px 16px; overflow:auto; border-top:1px solid #263f52; background:#06121d; }
.mastery-battle-log p { margin:0; color:#7897aa; font-size:8px; line-height:1.35; }
.mastery-battle-log strong { color:#cce1ec; }.mastery-battle-log b { color:#e8919f; }
.mastery-battle-running { display:block; padding:8px 16px; color:#7392a6; border-top:1px solid #1c3446; font-size:7px; font-weight:900; letter-spacing:.1em; text-align:center; }
.mastery-battle-result { position:absolute; z-index:8; inset:50% auto auto 50%; display:flex; width:min(330px,calc(100% - 32px)); padding:18px; flex-direction:column; align-items:center; gap:8px; border:1px solid var(--mastery-accent); border-radius:9px; background:#071522f2; box-shadow:0 16px 45px #000c; transform:translate(-50%,-50%); text-align:center; animation:mastery-battle-result-enter .3s ease-out both; }
.mastery-battle-result small { color:var(--mastery-accent); font-size:7px; font-weight:900; letter-spacing:.12em; }
.mastery-battle-result > strong { color:#eef8fd; font-size:18px; }
.mastery-battle-result .mastery-action { width:100%; }
.mastery-battle-close { min-height:28px; padding:0 12px; color:#839dad; border:0; background:transparent; font:800 8px/1 inherit; cursor:pointer; }
.mastery-battle-close:hover { color:#d9e8ef; }

@keyframes mastery-battle-enter { from { opacity:0; transform:translateY(5px) scale(.992); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes mastery-battle-attack-left { 0%,100% { transform:translateX(0) scale(1); } 50% { transform:translateX(12px) scale(1.025); } }
@keyframes mastery-battle-attack-right { 0%,100% { transform:translateX(0) scale(1); } 50% { transform:translateX(-12px) scale(1.025); } }
@keyframes mastery-battle-hit { 0%,100% { transform:translateX(0); filter:none; } 35% { transform:translateX(-3px); filter:brightness(1.35); } 70% { transform:translateX(3px); } }
@keyframes mastery-battle-damage { from { opacity:0; transform:translate(-50%,5px) scale(.9); } 35% { opacity:1; } to { opacity:0; transform:translate(-50%,-11px) scale(1); } }
@keyframes mastery-battle-fighter-enter { from { opacity:0; transform:translateY(7px) scale(.96); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes mastery-battle-result-enter { from { opacity:0; transform:translate(-50%,-46%) scale(.97); } to { opacity:1; transform:translate(-50%,-50%) scale(1); } }

@keyframes mastery-panel-enter {
  from { opacity:0; transform:translateY(4px); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes mastery-emblem-float {
  0%,100% { opacity:.055; transform:translateY(0) scale(1); }
  50% { opacity:.08; transform:translateY(-2px) scale(1.012); }
}
@keyframes mastery-emblem-pulse {
  0%,100% { opacity:.055; transform:translateY(0) scale(1); }
  50% { opacity:.09; transform:translateY(-1px) scale(1.022); }
}
@keyframes mastery-emblem-shimmer {
  0%,100% { opacity:.05; transform:translateY(0) scale(1); }
  45% { opacity:.095; transform:translateY(-1px) scale(1.012); }
  55% { opacity:.065; transform:translateY(-1px) scale(1.012); }
}
@keyframes mastery-emblem-breathe {
  0%,100% { opacity:.045; transform:scale(.995); }
  50% { opacity:.082; transform:scale(1.012); }
}
@keyframes mastery-accent-sweep {
  0%,18% { transform:translateX(-120%); opacity:0; }
  42% { opacity:.32; }
  68%,100% { transform:translateX(660%); opacity:0; }
}
@keyframes mastery-rank-highlight {
  0% { box-shadow:0 0 0 0 transparent; transform:scale(.985); }
  55% { box-shadow:0 0 0 1px var(--mastery-accent); transform:scale(1.018); }
  100% { box-shadow:0 0 0 0 transparent; transform:scale(1); }
}
@keyframes mastery-rank-enter {
  from { opacity:.25; transform:translateY(3px); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes mastery-active-border {
  0%,100% { border-color:#263f53; box-shadow:0 0 0 transparent; }
  50% { border-color:var(--mastery-accent); box-shadow:0 0 0 1px var(--mastery-accent-soft); }
}
@keyframes mastery-complete-flash {
  0% { background:var(--mastery-accent-soft); box-shadow:inset 0 0 0 1px var(--mastery-accent); }
  100% { background:#091925; box-shadow:inset 0 1px 0 #ffffff08; }
}

@media (prefers-reduced-motion:reduce) {
  .mastery-view.active .mastery-panel,
  .mastery-active-theme .mastery-overview::before,
  .mastery-emblem,
  .mastery-active-theme .mastery-overview > header > span:last-child,
  .mastery-rank-progress li.is-complete,
  .mastery-rank-progress li.is-current,
  .mastery-active-theme .mastery-mission.is-complete,
  .mastery-active-theme .mastery-mission:not(.is-locked):not(.is-complete) { animation:none; }
  .mastery-progress-track i { transition:none; }
  .mastery-battle-window,
  .mastery-battle-fighter .mastery-battle-sprite,
  .mastery-battle-fighter .mastery-battle-damage,
  .mastery-battle-result { animation:none !important; }
  .mastery-battle-hp-track i,
  .mastery-battle-fighter.is-ko .mastery-battle-sprite img { transition:none; }
}

@media (max-width:700px) {
  .game-drawer.mastery-expanded { width:calc(100vw - 24px); max-width:calc(100vw - 24px); }
  .mastery-panel { padding:12px; }
  .mastery-catalog { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:480px) {
  .mastery-catalog,.mastery-missions { grid-template-columns:1fr; }
  .mastery-intro { align-items:flex-start; flex-direction:column; }
  .mastery-bonus-grid { grid-template-columns:1fr; flex-basis:100%; }
  .mastery-footer { align-items:stretch; flex-direction:column; }
  .mastery-rank-progress ol { flex-wrap:wrap; gap:5px 9px; }
  .mastery-rank-progress li:not(:last-child) { flex:none; }
  .mastery-rank-progress li:not(:last-child)::after { display:none; }
}
@media (max-width:620px) {
  .mastery-battle-overlay { padding:8px; }
  .mastery-battle-window { width:calc(100vw - 16px); max-height:calc(100vh - 16px); }
  .mastery-battle-arena { grid-template-columns:1fr auto 1fr; gap:5px; min-height:300px; padding:14px 8px; }
  .mastery-battle-sprite { width:112px; height:130px; }
  .mastery-battle-sprite img { width:108px; height:108px; }
  .mastery-battle-fighter-copy { padding:7px; }
  .mastery-battle-fighter-copy header { align-items:flex-start; flex-direction:column; gap:2px; }
  .mastery-battle-versus { width:32px; height:32px; font-size:10px; }
}
.ditto-memory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:10px}.ditto-memory-card{min-width:0;min-height:184px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;padding:10px;border:1px solid #294e68;border-radius:var(--radius-8);background:#0b2638;text-align:center}.ditto-memory-card.is-active{border-color:#4f9cbd;box-shadow:inset 0 0 0 1px #4f9cbd33}.ditto-memory-card.is-empty,.ditto-memory-card.is-locked{justify-content:center}.ditto-memory-card.is-locked{opacity:.58;background:#091b29}.ditto-memory-card-label{display:flex;width:100%;min-height:18px;align-items:center;justify-content:space-between;gap:6px}.ditto-memory-card small{color:#6ab6d8;font-size:7px;font-weight:900;letter-spacing:.1em}.ditto-memory-card-label b{display:inline-flex;align-items:center;justify-content:center;min-height:17px;padding:0 6px;border:1px solid #4385a4;border-radius:var(--radius-4);background:#12384c;color:#bdeeff;font-size:7px}.ditto-memory-portrait{display:grid;width:74px;height:74px;place-items:center}.ditto-memory-card img{width:74px;height:74px;object-fit:contain;image-rendering:pixelated}.ditto-memory-card-copy{display:flex;min-width:0;flex-direction:column;align-items:center;gap:4px}.ditto-memory-card-copy strong{max-width:100%;overflow:hidden;color:#eef9ff;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.ditto-memory-card-copy>em{color:#7897a9;font-size:8px;font-style:normal;line-height:1.4}.ditto-memory-types{display:flex;flex-wrap:wrap;justify-content:center;gap:3px}.ditto-memory-types .travel-type{min-height:15px;padding:1px 5px;border-radius:3px;font-size:6px}.ditto-memory-actions{display:flex;width:100%;align-items:center;justify-content:center;gap:6px;margin-top:auto}.ditto-memory-actions .travel-primary,.ditto-memory-actions .secondary-action,.ditto-memory-card>.secondary-action{width:auto;min-height:29px;margin:0;padding:0 9px;font-size:7px;letter-spacing:.04em}
.ditto-memory-window{width:min(540px,calc(100vw - 32px));grid-template-rows:auto auto auto minmax(92px,1fr) auto}.ditto-memory-intro{display:flex;flex-direction:column;gap:3px;margin:12px 20px 4px;padding:10px 12px;border:1px solid #294e68;border-radius:var(--radius-6);background:#0a2130}.ditto-memory-intro strong{color:#dff3fc;font-size:11px}.ditto-memory-intro span{color:#82a2b4;font-size:9px}.ditto-memory-window>.pokemon-addon-status{padding:5px 20px 0}.ditto-memory-window>.pokemon-addon-candidates{max-height:260px;padding:10px 20px}.ditto-memory-window>.pokemon-addon-candidates em{display:block;margin-top:3px;color:#72afc8;font-size:8px;font-style:normal}.ditto-memory-window>footer .travel-primary{width:auto;min-height:36px;margin:0}
.ditto-manager-window{width:min(680px,calc(100vw - 32px));max-height:min(640px,calc(100vh - 32px));grid-template-rows:auto auto minmax(0,1fr) auto auto;overflow:hidden}.ditto-manager-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:12px 20px 0}.ditto-manager-summary>span{display:flex;min-width:0;min-height:48px;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:7px;border:1px solid #294e68;border-radius:var(--radius-6);background:#0a2130;text-align:center}.ditto-manager-summary small{color:#6ca8c2;font-size:7px;font-weight:900;letter-spacing:.08em}.ditto-manager-summary strong{max-width:100%;overflow:hidden;color:#e8f7fd;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.ditto-manager-window>.ditto-memory-grid{min-height:0;padding:12px 20px 8px;overflow-y:auto}.ditto-manager-window>.pokemon-addon-status{min-height:24px;padding:3px 20px 8px}.ditto-manager-window>footer .secondary-action,.ditto-manager-window>footer .primary{min-width:94px;min-height:34px;margin:0}.ditto-manager-window>footer button:disabled{opacity:.42;cursor:not-allowed}
.ditto-memory-slot-time{min-height:12px;color:#79bdd8;font-size:7px;font-style:normal;font-weight:800;letter-spacing:.04em}.ditto-memory-slot-time.is-expired{color:#78909d}
.move-dock.ditto-original{padding:6px}.move-slot.ditto-utility-slot{width:112px}.move-utility-button{display:flex;align-items:center;justify-content:center;padding:5px 8px;color:#cde9f5;border-color:#447894;background:linear-gradient(180deg,#17445e,#0c293c);text-align:center}.move-utility-button>strong{font-size:8px;line-height:1.15;text-transform:uppercase;white-space:nowrap}
@media(max-width:620px){.ditto-manager-summary{grid-template-columns:repeat(2,minmax(0,1fr));margin-inline:12px}.ditto-manager-window>.ditto-memory-grid{grid-template-columns:1fr;max-height:48vh;padding-inline:12px}.ditto-memory-card{min-height:154px}.ditto-memory-window>.pokemon-addon-candidates{max-height:40vh;padding-inline:12px}.ditto-memory-intro{margin-inline:12px}.ditto-memory-window>.pokemon-addon-status{padding-inline:12px}}
.pokemon-name-with-ball {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  max-width: 100%;
  gap: 5px;
  vertical-align: middle;
}

.pokemon-name-with-ball > span:first-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pokemon-ball-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  line-height: 1;
  vertical-align: middle;
  cursor: help;
}

.pokemon-ball-badge img {
  display: block;
  width: 22px;
  height: 22px;
  object-fit: contain;
  image-rendering: pixelated;
}

.premier-ball-static-frame {
  display:block;
  width:22px;
  height:22px;
  background-image:url('/game-data/assets/premier-ball-item-spritesheet.png');
  background-repeat:no-repeat;
  background-position:100% 0;
  background-size:2000% 100%;
  image-rendering:pixelated;
}

.capture-history-ball-frame { width:24px; height:24px; margin-inline:auto; }

.pokemon-name-level {
  flex: 0 0 auto;
}

/* Kanto Gyms share the Maps shell and the approved Mastery PvE presentation. */
.travel-subnav {
  display:flex;
  align-items:center;
  gap:4px;
  flex:none;
  padding:3px;
  border:1px solid #29485f;
  border-radius:7px;
  background:#071722;
}
.travel-subnav button {
  min-width:96px;
  height:26px;
  padding:0 13px;
  color:#6f8da2;
  border:1px solid transparent;
  border-radius:5px;
  background:transparent;
  font-size:12px;
  font-weight:900;
  letter-spacing:.1em;
  transition:color .14s ease,border-color .14s ease,background-color .14s ease;
}
.travel-subnav button:hover { color:#d6e7f0; background:#0e2638; }
.travel-subnav button.active {
  color:#e6f6ff;
  border-color:#3b718f;
  background:#12364d;
  box-shadow:inset 0 1px 0 #ffffff10;
}
.travel-subnav button:focus-visible { outline:2px solid #69b7d2; outline-offset:2px; }
.travel-mode-pane[hidden] { display:none; }
.travel-mode-pane:not([hidden]) { display:flex; min-height:0; flex:1; flex-direction:column; gap:8px; }
.gym-panel { min-height:0; height:100%; overflow:hidden; }
.gym-loading { min-height:360px; }
.gym-browser { display:flex; height:100%; min-height:0; flex-direction:column; gap:10px; padding:2px; color:#dbeaf2; }
.gym-browser-header {
  display:grid;
  grid-template-columns:minmax(240px,.8fr) minmax(390px,1.2fr);
  align-items:stretch;
  gap:18px;
  flex:none;
  padding:14px 16px;
  border:1px solid var(--ui-line);
  border-radius:var(--radius-8);
  background:linear-gradient(135deg,#0f2231,#091621 72%);
  box-shadow:inset 0 1px 0 var(--panel-highlight),0 8px 22px #020a1040;
}
.gym-browser-intro { min-width:0; align-self:center; }
.gym-browser-header small { color:#668ba1; font-size:8px; font-weight:900; letter-spacing:.1em; }
.gym-browser-header strong { display:block; margin:2px 0; color:#eef8fd; font-size:16px; }
.gym-browser-header p { margin:0; color:#7f9caf; font-size:10px; line-height:1.4; }
.gym-campaign-progress { display:flex; min-width:0; flex-direction:column; justify-content:center; gap:8px; padding-left:16px; border-left:1px solid #284457; }
.gym-campaign-progress-copy { display:flex; min-width:0; align-items:center; justify-content:flex-end; gap:7px; }
.gym-campaign-progress-copy > span { display:flex; align-items:baseline; gap:6px; margin-right:auto; }
.gym-campaign-progress-copy > span b { color:#9ed1f1; font-size:13px; white-space:nowrap; }
.gym-campaign-progress-copy > span small { color:#7898ae; font-size:7px; letter-spacing:.06em; }
.gym-owner-test { display:flex; min-height:22px; align-items:center; justify-content:center; padding:3px 7px; color:#a9bdc9; border:1px solid #3b5262; border-radius:var(--radius-4); background:#101c25; font-size:7px; font-style:normal; font-weight:900; letter-spacing:.075em; }
.gym-browser.is-shiny .gym-browser-header { border-color:#55466f; background:#111725; }
.gym-browser.is-shiny .gym-campaign-progress { border-left-color:#4e4269; }
.gym-browser.is-shiny .gym-campaign-progress-copy > span b { color:#c4a8ee; }
.gym-badge-progress { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); align-items:center; gap:7px; min-width:0; }
.gym-badge-progress-step { position:relative; display:grid; min-width:0; place-items:center; gap:2px; }
.gym-badge-progress-step::after { position:absolute; z-index:0; left:calc(50% + 14px); top:13px; width:calc(100% - 21px); height:1px; background:#29495d; content:''; }
.gym-badge-progress-step:last-child::after { display:none; }
.gym-badge-progress-step.is-earned::after { background:#53899f; }
.gym-badge-progress-step > small { color:#527287; font-size:6px; }
.gym-badge-icon { position:relative; z-index:1; display:grid; flex:0 0 auto; place-items:center; }
.gym-badge-icon img { display:block; width:100%; height:100%; object-fit:contain; image-rendering:pixelated; }
.gym-badge-icon.is-pending { filter:grayscale(1) brightness(.42); opacity:.58; }
.gym-badge-icon.is-earned { filter:drop-shadow(0 2px 4px #58b3d044); }
.gym-progress-badge-icon { width:27px; height:27px; }
.gym-mode-row { display:flex; width:max-content; align-items:center; gap:3px; flex:none; padding:3px; border:1px solid var(--ui-line); border-radius:var(--radius-6); background:var(--ui-blue-950); }
.gym-mode-row > button {
  height:30px;
  min-width:92px;
  padding:0 12px;
  color:#718da0;
  border:1px solid transparent;
  border-radius:var(--radius-4);
  background:transparent;
  font-size:10px;
  font-weight:900;
  letter-spacing:.09em;
}
.gym-mode-row > button:hover { color:#d5e9f4; border-color:#47758e; }
.gym-mode-row > button.active { color:#def5ff; border-color:#4384a2; background:#123a50; }
.gym-mode-row > button.is-shiny.active { color:#eadfff; border-color:#7a63a5; background:#2b2342; }
.gym-mode-row > button.is-locked { color:#536b7b; cursor:not-allowed; opacity:.58; }
.gym-mode-row > button.is-locked:hover { color:#536b7b; border-color:transparent; background:transparent; }
.gym-mode-lock { position:relative; display:inline-block; width:8px; height:7px; flex:0 0 auto; border:1px solid currentColor; border-radius:2px; }
.gym-mode-lock::before { position:absolute; left:1px; bottom:5px; width:4px; height:4px; border:1px solid currentColor; border-bottom:0; border-radius:4px 4px 0 0; content:''; }
.gym-global-cooldown { display:flex; min-height:25px; align-items:center; justify-content:center; padding:4px 8px; color:#72bfa4; border:1px solid #2f6555; border-radius:var(--radius-4); background:#0a241c; font-size:8px; font-style:normal; font-weight:900; letter-spacing:.045em; text-align:center; }
.gym-global-cooldown.is-active { color:#ddb774; border-color:#625435; background:#251f12; }
.gym-content-grid { display:grid; grid-template-columns:minmax(0,1.58fr) minmax(310px,1fr); min-height:0; flex:1; gap:12px; overflow:hidden; }
.gym-leader-list {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-content:start;
  gap:8px;
  min-height:0;
  padding:1px 7px 5px 1px;
  overflow-y:auto;
  scrollbar-color:#365c78 #09141e;
  scrollbar-width:thin;
}
.gym-leader-card {
  position:relative;
  display:grid;
  grid-template-columns:98px minmax(0,1fr) minmax(126px,auto);
  align-items:stretch;
  gap:14px;
  min-height:122px;
  padding:10px 12px;
  color:inherit;
  border:1px solid #264356;
  border-radius:var(--radius-8);
  background:linear-gradient(135deg,#122432,#0b1721 76%);
  box-shadow:inset 0 1px 0 #ffffff0a,0 5px 14px #02090f35;
  text-align:left;
  transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease,transform .14s ease;
}
.gym-leader-card:hover { border-color:#4a7892; background:linear-gradient(135deg,#153044,#0d1c28 76%); transform:translateY(-1px); }
.gym-leader-card:focus-visible { outline:2px solid #70b5d1; outline-offset:2px; }
.gym-leader-card.is-selected { border-color:#5793b0; background:linear-gradient(135deg,#173b51,#0d2130 78%); box-shadow:inset 3px 0 0 #5793b0,inset 0 1px 0 #ffffff12,0 8px 20px #020a1059; }
.gym-browser.is-shiny .gym-leader-card.is-selected { border-color:#7d69a2; background:#211d34; box-shadow:inset 3px 0 0 #8b72b7,inset 0 1px 0 #ffffff0a; }
.gym-leader-card.is-locked { filter:saturate(.72); opacity:.7; }
.gym-leader-card.is-completed { border-color:#39755f; background:linear-gradient(135deg,#102b29,#0b1b20 78%); }
.gym-leader-card.is-cooldown { border-color:#4b4737; }
.gym-leader-portrait {
  display:grid;
  width:98px;
  height:100px;
  place-items:center;
  align-self:center;
  border:1px solid #365b77;
  border-radius:var(--radius-8);
  background:radial-gradient(circle at 50% 42%,#1b4058,#091724 72%);
  box-shadow:inset 0 1px 0 #ffffff08;
}
.gym-leader-portrait img { width:92px; height:92px; object-fit:contain; image-rendering:pixelated; filter:drop-shadow(0 5px 4px #0008); }
.gym-leader-copy { display:flex; min-width:0; flex-direction:column; justify-content:center; gap:4px; }
.gym-leader-location { display:block; color:#6e94ab; font-size:8px; font-weight:900; letter-spacing:.055em; }
.gym-leader-copy > strong { display:block; color:#eaf4fa; font-size:14px; line-height:1.15; }
.gym-leader-team { display:flex; align-items:center; gap:6px; color:#9bb3c2; font-size:10px; font-weight:800; }
.pokemon-type-icon { display:block; object-fit:contain; image-rendering:pixelated; }
.gym-leader-type-icon { width:17px; height:18px; flex:0 0 auto; }
.gym-team-balls { display:inline-flex; align-items:center; gap:3px; min-width:0; }
.gym-team-balls img { display:block; width:14px; height:14px; object-fit:contain; image-rendering:pixelated; }
.gym-leader-team-balls { flex-wrap:nowrap; }
.gym-leader-badge { display:flex; min-width:0; align-items:center; gap:6px; color:#7898aa; }
.gym-leader-badge em { overflow:hidden; font-size:8px; font-style:normal; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.gym-leader-badge-icon { width:22px; height:22px; }
.gym-leader-meta { display:flex; min-width:126px; flex-direction:column; align-items:flex-end; justify-content:space-between; gap:12px; padding:8px 0; text-align:right; }
.gym-leader-status { flex:none; padding:3px 6px; color:#7897a9; border:1px solid #35556a; border-radius:var(--radius-4); background:#0a1c28; font-size:8px; font-weight:900; letter-spacing:.025em; }
.gym-leader-status.is-available { color:#74d3b0; border-color:#32725c; background:#0c2a20; }
.gym-leader-status.is-completed { color:#9dcdbb; border-color:#3d705e; }
.gym-leader-status.is-cooldown { color:#d9b673; border-color:#695a39; background:#282111; }
.gym-leader-level { display:flex; flex-direction:column; align-items:flex-end; gap:2px; color:#7897aa; white-space:nowrap; }
.gym-leader-level small { color:#58788f; font-size:7px; font-weight:900; letter-spacing:.08em; }
.gym-leader-level b { color:#b6c9d5; font-size:10px; font-weight:800; }
.gym-detail {
  align-self:start;
  position:sticky;
  top:0;
  max-height:100%;
  overflow-y:auto;
  padding:14px;
  border:1px solid #29485c;
  border-radius:var(--radius-8);
  background:linear-gradient(180deg,#102536,#091721);
  box-shadow:inset 0 1px 0 #ffffff0a,0 8px 24px #02090f55;
  scrollbar-color:#365c78 #09141e;
  scrollbar-width:thin;
}
.gym-detail.is-shiny { border-color:#5d4d79; background:#111827; }
.gym-detail-leader { position:relative; display:grid; grid-template-columns:124px minmax(0,1fr); align-items:center; gap:14px; min-height:142px; padding:4px 4px 14px; border-bottom:1px solid #29475c; }
.gym-detail-portrait { display:grid; width:124px; height:132px; flex:none; place-items:center; border:1px solid #365b77; border-radius:var(--radius-8); background:radial-gradient(circle at 50% 40%,#1d465f,#091724 72%); box-shadow:inset 0 1px 0 #ffffff0b; }
.gym-detail-portrait > img { width:116px; height:116px; object-fit:contain; image-rendering:pixelated; filter:drop-shadow(0 7px 5px #0008); }
.gym-detail-identity { min-width:0; padding-bottom:33px; }
.gym-detail-location { display:flex; align-items:center; gap:8px; }
.gym-detail-location small { color:#7396aa; font-size:8px; font-weight:900; letter-spacing:.07em; }
.gym-detail-type-icon { width:20px; height:21px; flex:0 0 auto; }
.gym-detail-leader strong { display:block; margin:5px 0; color:#edf7fc; font-size:19px; }
.gym-detail-identity p { margin:0; color:#7d9bae; font-size:9px; line-height:1.4; }
.gym-detail-badge { position:absolute; right:4px; bottom:12px; display:flex; align-items:center; gap:7px; }
.gym-detail-badge em { color:#9bb4c3; font-size:8px; font-style:normal; font-weight:800; }
.gym-detail-badge-icon { width:30px; height:30px; }
.gym-detail-team-showcase { display:flex; min-height:48px; align-items:center; justify-content:space-between; gap:12px; margin:12px 0 8px; padding:8px 10px; border:1px solid #29485c; border-radius:var(--radius-6); background:#071722; }
.gym-detail-team-showcase > small { color:#66889d; font-size:7px; font-weight:900; letter-spacing:.07em; }
.gym-detail-team-balls img { width:16px; height:16px; }
.gym-detail-quick-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-bottom:8px; }
.gym-detail-quick-facts > span:not(.gym-detail-status) { display:flex; min-width:0; min-height:45px; flex-direction:column; justify-content:center; gap:3px; padding:7px 9px; border:1px solid #29485c; border-radius:var(--radius-6); background:#0a1c28; }
.gym-detail-quick-facts small { color:#66889d; font-size:7px; font-weight:900; letter-spacing:.055em; }
.gym-detail-quick-facts strong { overflow:hidden; color:#c6d7e1; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.gym-detail-status { display:inline-flex; align-items:center; justify-content:center; padding:3px 6px; border:1px solid #35556a; border-radius:var(--radius-4); background:#0a1c28; color:#89a5b5; font-size:8px; font-weight:900; }
.gym-detail-quick-facts > .gym-detail-status { grid-column:1 / -1; min-height:24px; }
.gym-detail-status.is-available { color:#74d3b0; border-color:#32725c; background:#0c2a20; }
.gym-detail-status.is-completed { color:#9dcdbb; border-color:#3d705e; }
.gym-detail-status.is-cooldown { color:#d9b673; border-color:#695a39; background:#282111; }
.gym-lock-reason,.gym-reward-note { margin:7px 0; padding:8px 9px; color:#bd9f6b; border:1px solid #564a33; border-radius:var(--radius-6); background:#211b11; font-size:9px; line-height:1.4; }
.gym-lock-reason { color:#a8878e; border-color:#57404a; background:#22161b; }
.gym-challenge-action { width:100%; min-height:34px; margin-top:2px; font-size:8px; }
.gym-challenge-action:disabled { opacity:.44; filter:saturate(.45); cursor:not-allowed; }
.gym-reward-note { margin:0; color:#829faf; border-color:#334f61; background:#0a1b27; }
.gym-battle-overlay { overflow:hidden; padding:12px; }
.gym-battle-window {
  --mastery-accent:#66bdd9;
  --mastery-accent-soft:#183d50;
  width:min(820px,calc(100vw - 24px));
  height:min(650px,calc(100vh - 24px));
  height:min(650px,calc(100dvh - 24px));
  max-height:calc(100vh - 24px);
  max-height:calc(100dvh - 24px);
  display:flex;
  min-height:0;
  flex-direction:column;
  overflow:hidden;
}
.gym-battle-window.is-shiny { --mastery-accent:#a98ad9; --mastery-accent-soft:#3e315d; }
.gym-battle-header { flex:0 0 auto; padding:10px 14px; }
.gym-battle-header > span { display:flex; align-items:center; }
.gym-battle-header small { font-size:7px; }
.gym-battle-header h2 { font-size:17px; }
.gym-battle-header > span b { font-size:6px; }
.gym-battle-header > span em { color:#8db4c8; font-size:8px; font-style:normal; font-weight:900; letter-spacing:.04em; }
.gym-battle-potions { display:inline-flex; align-items:center; gap:5px; }
.gym-battle-potions img { width:18px; height:18px; object-fit:contain; image-rendering:pixelated; }
.gym-battle-arena { min-height:0; flex:1 1 auto; padding:12px 28px; overflow:visible; }
.gym-battle-arena.is-themed-arena {
  isolation:isolate;
  grid-template-columns:minmax(0,1fr) minmax(42px,.18fr) minmax(0,1fr);
  align-items:center;
  background-image:linear-gradient(180deg,#02070d38,#02070d14 58%,#02070d52),var(--gym-battle-background);
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  image-rendering:pixelated;
}
.gym-battle-arena.is-themed-arena::after { z-index:0; inset:0; height:auto; border-radius:0; background:linear-gradient(90deg,#02070d38,transparent 25% 75%,#02070d38); box-shadow:inset 0 0 36px #0007; pointer-events:none; }
.gym-battle-arena.is-themed-arena .mastery-battle-watermark { display:none; }
.gym-battle-arena.is-themed-arena .gym-battle-fighter { position:absolute; z-index:3; inset:0; width:auto; pointer-events:none; }
.gym-battle-arena.is-themed-arena .gym-battle-fighter .mastery-battle-sprite { position:absolute; }
.gym-battle-arena.is-themed-arena .gym-battle-fighter.is-player .mastery-battle-sprite { left:var(--gym-player-safe-left); top:var(--gym-player-safe-top); width:var(--gym-player-safe-width); height:var(--gym-player-safe-height); }
.gym-battle-arena.is-themed-arena .gym-battle-fighter.is-opponent .mastery-battle-sprite { left:var(--gym-opponent-safe-left); top:var(--gym-opponent-safe-top); width:var(--gym-opponent-safe-width); height:var(--gym-opponent-safe-height); }
.gym-battle-arena.is-themed-arena .mastery-battle-damage { top:var(--gym-sprite-top,18px); left:var(--gym-sprite-center-x,50%); }
.gym-battle-arena.is-themed-arena .gym-battle-ball-effect { top:var(--gym-sprite-center-y,50%); left:var(--gym-sprite-center-x,50%); }
.gym-battle-arena.is-themed-arena .mastery-battle-versus { position:absolute; z-index:4; top:53%; left:50%; visibility:hidden; opacity:0; transform:translate(-50%,-50%); transition:opacity .16s ease,visibility 0s linear .16s; }
.gym-battle-window.is-phase-preparing .gym-battle-arena.is-themed-arena .mastery-battle-versus { visibility:visible; opacity:1; transition-delay:0s; }
.gym-battle-arena.is-themed-arena .gym-battle-leader { right:-28%; top:-40%; }
.gym-battle-arena.is-themed-arena .mastery-battle-fighter-copy { position:absolute; z-index:12; width:min(29%,218px); padding:6px 8px; pointer-events:auto; }
.gym-battle-arena.is-themed-arena .gym-battle-fighter.is-player .mastery-battle-fighter-copy { bottom:12px; left:14px; }
.gym-battle-arena.is-themed-arena .gym-battle-fighter.is-opponent .mastery-battle-fighter-copy { top:42px; right:14px; }
.gym-battle-arena.is-themed-arena .mastery-battle-fighter-copy small { margin:2px 0 4px; font-size:6px; }
.gym-battle-arena.is-themed-arena .mastery-battle-fighter-copy > b { margin-top:2px; }
.gym-battle-arena.is-themed-arena .mastery-battle-hp-track { height:7px; }
.gym-battle-arena.is-themed-arena .mastery-battle-fighter-copy { border-color:#3f5360; background:#07131ddf; box-shadow:0 5px 16px #0008,inset 0 1px 0 #ffffff0d; }
.gym-battle-arena.is-themed-arena .gym-battle-teams,
.gym-battle-arena.is-themed-arena .gym-battle-phase,
.gym-battle-arena.is-themed-arena .gym-battle-potion-callout,
.gym-battle-arena.is-themed-arena .gym-battle-defeat-speech { z-index:10; }
.gym-battle-teams { position:absolute; z-index:5; top:10px; left:20px; right:20px; display:flex; align-items:flex-start; justify-content:space-between; pointer-events:none; }
.gym-battle-team { display:flex; flex-direction:column; gap:4px; }
.gym-battle-team.is-opponent { align-items:flex-end; }
.gym-battle-team small { color:#8aaabd; font-size:7px; font-style:normal; font-weight:900; letter-spacing:.1em; }
.gym-battle-team > span { display:flex; gap:4px; }
.gym-battle-team-ball { position:relative; display:grid; width:17px; height:17px; place-items:center; border-radius:50%; transition:filter .18s ease,opacity .18s ease,transform .18s ease; }
.gym-battle-team-ball img { width:15px; height:15px; object-fit:contain; image-rendering:pixelated; }
.gym-battle-team-ball.is-defeated { filter:grayscale(1) brightness(.4); opacity:.48; }
.gym-battle-team-ball.is-active { transform:translateY(-1px) scale(1.12); filter:drop-shadow(0 0 4px var(--mastery-accent)); }
.gym-battle-team-ball.is-active i { position:absolute; inset:-2px; border:1px solid var(--mastery-accent); border-radius:50%; }
.gym-battle-window .mastery-battle-sprite { width:150px; height:150px; }
.gym-battle-window .mastery-battle-sprite.pokemon-ui-sprite-frame { overflow:visible; }
.gym-battle-window .mastery-battle-sprite > img[data-pokemon-ui-sprite] { width:136px; height:136px; }
.gym-battle-leader { position:absolute; z-index:1; right:-16%; top:-9%; display:grid; width:105px; height:123px; place-items:center; overflow:visible; opacity:.78; }
.gym-battle-leader img { width:96px !important; height:96px !important; object-fit:contain; image-rendering:pixelated; filter:drop-shadow(0 8px 5px #0008); }
.gym-battle-fighter.is-opponent .mastery-battle-sprite > img[data-pokemon-ui-sprite] { position:relative; z-index:2; }
.gym-battle-fighter .mastery-battle-fighter-copy strong { font-size:11px; }
.gym-battle-fighter .mastery-battle-fighter-copy header span { font-size:7px; }
.gym-battle-fighter .mastery-battle-fighter-copy small { font-size:7px; }
.gym-battle-fighter .mastery-battle-fighter-copy > b { font-size:7px; }
.gym-battle-fighter.is-shiny-fighter .mastery-battle-fighter-copy strong { color:#d5c1fa; text-shadow:0 0 8px #916dd477; }
.gym-battle-fighter.is-shiny-fighter .mastery-battle-sprite { filter:drop-shadow(0 0 9px #9873d64d); }
.gym-battle-fighter.is-critical-hp:not(.is-ko) .mastery-battle-hp-track { border-color:#a45050; box-shadow:0 0 7px #cf454533; }
.gym-battle-fighter.is-critical-hp:not(.is-ko) .mastery-battle-hp-track i { background:linear-gradient(90deg,#a52e3a,#e15b55); animation:gym-critical-hp 1.25s ease-in-out infinite; }
.gym-battle-ball-effect { position:absolute; z-index:5; top:50%; left:50%; display:none; width:var(--gym-ball-frame-width); height:var(--gym-ball-frame-height); overflow:hidden; image-rendering:pixelated; pointer-events:none; transform:translate(-50%,-50%); }
.gym-battle-ball-effect > i { position:absolute; top:0; left:0; width:var(--gym-ball-frame-width); height:var(--gym-ball-sheet-height); background-image:var(--gym-ball-sheet); background-repeat:no-repeat; background-size:var(--gym-ball-sheet-width) var(--gym-ball-sheet-height); image-rendering:pixelated; transform:translateY(0); }
.gym-battle-fighter.is-ball-sending .gym-battle-ball-effect,.gym-battle-fighter.is-ball-recalling .gym-battle-ball-effect { display:block; }
.gym-battle-fighter.is-ball-sending .gym-battle-ball-effect > i,.gym-battle-fighter.is-ball-recalling .gym-battle-ball-effect > i { animation:gym-ball-sheet var(--gym-ball-cycle) steps(var(--gym-ball-frames)) 1 both; }
.gym-battle-fighter.is-ball-sending .mastery-battle-sprite > img[data-pokemon-ui-sprite] { animation:gym-ball-send .62s ease-out both; }
.gym-battle-fighter.is-ball-recalling .mastery-battle-sprite > img[data-pokemon-ui-sprite] { animation:gym-ball-recall .62s ease-in both; }
.gym-battle-window .mastery-battle-log { min-height:58px; max-height:88px; flex:0 1 88px; justify-content:flex-start; overflow-y:auto; overscroll-behavior:contain; }
.gym-battle-window .mastery-battle-log p { font-size:8px; }
.gym-battle-window .mastery-battle-result { max-height:calc(100% - 28px); overflow-y:auto; }
.gym-battle-window .mastery-battle-result small { font-size:7px; }
.gym-battle-window .mastery-battle-result > strong { font-size:18px; }
.gym-battle-window .mastery-battle-result .mastery-action { min-height:32px; font-size:8px; }
.gym-battle-window .gym-battle-result { width:min(410px,calc(100% - 28px)); padding:16px 18px 17px; gap:8px; border-color:#47768d; background:linear-gradient(180deg,#0b2231f7,#07151ff7); scrollbar-color:#365c78 #09141e; scrollbar-width:thin; }
.gym-result-eyebrow { color:#72b8d4 !important; }
.gym-result-title { font-size:20px !important; letter-spacing:.015em; }
.gym-result-badge { display:flex; flex-direction:column; align-items:center; gap:3px; padding:3px 0 2px; }
.gym-result-badge > span { display:grid; width:76px; height:76px; place-items:center; border:1px solid #355b70; border-radius:var(--radius-8); background:radial-gradient(circle,#173d52,#081721 72%); box-shadow:inset 0 1px 0 #ffffff0d; }
.gym-result-badge img { width:68px; height:68px; object-fit:contain; image-rendering:pixelated; }
.gym-result-badge > small { color:#6f94a9 !important; letter-spacing:.1em; }
.gym-result-badge > strong { color:#e9f5fa; font-size:11px; }
.gym-result-badge.is-earned > span { border-color:#56869c; box-shadow:inset 0 1px 0 #ffffff14,0 0 16px #4c91ad2b; animation:gym-result-badge-enter .35s ease-out both; }
.gym-result-context { max-width:330px; margin:0; color:#809cab; font-size:9px; line-height:1.4; }
.gym-result-summary { width:100%; padding:8px 0; border-top:1px solid #29475a; border-bottom:1px solid #29475a; }
.gym-result-summary > small { display:block; margin-bottom:6px; color:#7296aa; text-align:left; }
.gym-result-summary > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.gym-result-summary span { display:flex; min-width:0; min-height:40px; flex-direction:column; justify-content:center; gap:2px; padding:6px 7px; border:1px solid #29495c; border-radius:var(--radius-6); background:#081a26; color:#7897a8; font-size:7px; line-height:1.3; text-align:left; }
.gym-result-summary b { color:#e6f3f8; font-size:12px; }
.gym-result-rewards { width:100%; padding-top:8px; border-top:1px solid #29475a; }
.gym-result-rewards > small { display:block; margin-bottom:6px; color:#7296aa; text-align:left; }
.gym-result-rewards > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.gym-result-reward { display:flex; min-width:0; min-height:48px; align-items:center; gap:8px; padding:7px 9px; border:1px solid #29495c; border-radius:var(--radius-6); background:#081a26; text-align:left; }
.gym-result-reward > i { display:grid; width:28px; height:28px; flex:0 0 auto; place-items:center; border:1px solid #39735f; border-radius:50%; background:#0d3327; color:#73d3a7; font-size:13px; font-style:normal; font-weight:950; }
.gym-result-reward > i.is-xp { border-color:#456c91; background:#102d47; color:#83c5f2; font-size:8px; }
.gym-result-reward > span:last-child { display:flex; min-width:0; flex-direction:column; gap:2px; }
.gym-result-reward small { color:#66889b !important; }
.gym-result-reward strong { overflow:hidden; color:#dbeaf1; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.gym-result-item-visual { display:grid; width:30px; height:30px; flex:0 0 auto; place-items:center; }
.gym-result-item-visual > img,.gym-result-item-visual .animated-item-visual { width:30px; height:30px; object-fit:contain; image-rendering:pixelated; }
.gym-result-reward.is-item { border-color:#60583f; background:#221e14; }
.gym-result-reward.is-outfit { grid-column:1 / -1; }
.gym-result-reward.is-outfit > i { border-radius:var(--radius-6); }
.gym-result-action { width:100%; min-height:34px !important; margin-top:2px; }
@keyframes gym-result-badge-enter { from { opacity:.35; transform:scale(.9); } to { opacity:1; transform:scale(1); } }
.gym-battle-fighter.is-healing .mastery-battle-sprite { animation:gym-battle-heal .42s ease-out; }
.gym-battle-fighter.is-healing .mastery-battle-damage { color:#79dfa2; animation:mastery-battle-damage .42s ease-out both; }
.gym-battle-running { display:flex; flex:0 0 auto; align-items:center; justify-content:space-between; gap:12px; padding:7px 14px; border-top:1px solid #1c3446; background:#07151f; }
.gym-battle-running span { color:#7392a6; font-size:8px; font-weight:900; letter-spacing:.075em; }
.gym-battle-running button { min-height:30px; padding:0 11px; font-size:8px; }
.gym-battle-running.is-terminal { justify-content:center; }
.gym-battle-log-event { display:flex; min-height:17px; align-items:center; justify-content:space-between; gap:8px; padding:2px 5px; border-left:2px solid transparent; border-radius:3px; }
.gym-battle-log-event > span:first-of-type { min-width:0; }
.gym-battle-log-event > i { display:grid; width:14px; height:14px; flex:0 0 auto; place-items:center; border-radius:50%; background:#215d44; color:#9af0bd; font-size:10px; font-style:normal; font-weight:950; }
.gym-battle-log-event.is-potion { justify-content:flex-start; border-color:#4cbd7b; background:#1634266b; color:#a9d8bb; }
.gym-battle-log-event.is-potion em { color:#72d69a; font-style:normal; font-weight:900; }
.gym-battle-log-event.is-knockout { border-color:#c85a67; background:#3b182163; }
.gym-battle-log-flags { display:flex; flex:0 0 auto; gap:3px; }
.gym-battle-log-flags em { padding:2px 4px; border:1px solid #3b596c; border-radius:3px; color:#9eb7c5; font-size:6px; font-style:normal; font-weight:950; letter-spacing:.04em; }
.gym-battle-log-flags .is-critical { border-color:#b9803f; color:#edbd6a; }
.gym-battle-log-flags .is-effective { border-color:#477f5a; color:#79d79a; }
.gym-battle-log-flags .is-resisted { border-color:#56636b; color:#899ba4; }
.gym-battle-log-flags .is-ko { border-color:#a74d5a; color:#ed8b98; }
.gym-battle-log-notice { padding:3px 6px !important; border-left:2px solid #648ea5; border-radius:3px; background:#17304473; }
.gym-battle-log-notice.is-ace { border-color:#d1a349; background:#4938175c; }
.gym-battle-log-notice.is-victory { border-color:#54b77b; background:#183c2866; }
.gym-battle-log-notice.is-defeat { border-color:#bb5966; background:#431c2466; }
.gym-battle-log-notice strong { font-size:7px; letter-spacing:.05em; }
.gym-battle-potion-callout { position:absolute; z-index:11; top:20%; left:50%; display:flex; align-items:center; gap:10px; min-width:250px; padding:10px 14px; border:1px solid #5bbd8099; border-radius:7px; background:#082219ed; box-shadow:0 12px 30px #0009,0 0 18px #4dcc7b30; opacity:0; pointer-events:none; transform:translate(-50%,-8px) scale(.98); transition:opacity .16s ease,transform .16s ease; }
.gym-battle-potion-callout.is-visible { opacity:1; transform:translate(-50%,0) scale(1); }
.gym-battle-potion-callout img { width:32px; height:32px; object-fit:contain; image-rendering:pixelated; }
.gym-battle-potion-callout span { display:flex; flex-direction:column; gap:2px; }
.gym-battle-potion-callout strong { color:#e9fff0; font-size:10px; letter-spacing:.05em; }
.gym-battle-potion-callout small { color:#76e2a0; font-size:9px; font-weight:900; }
.gym-battle-phase {
  position:absolute;
  z-index:7;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:24px;
  color:#eaf8fe;
  background:#06131edb;
  text-align:center;
  backdrop-filter:blur(2px);
}
.gym-battle-phase.hidden { display:none; }
.gym-battle-phase small { color:var(--mastery-accent); font-size:13px; font-weight:900; letter-spacing:.11em; }
.gym-battle-phase strong { max-width:520px; color:#f2fbff; font-size:28px; line-height:1.15; text-shadow:0 3px 14px #000; }
.gym-battle-phase span { color:#91adbd; font-size:13px; font-weight:900; letter-spacing:.1em; }
.gym-battle-intro-leader,.gym-battle-intro-versus,.gym-battle-intro-countdown { display:none; }
.gym-battle-phase[data-intro-stage="leader"] .gym-battle-intro-leader { display:flex; align-items:center; gap:20px; animation:gym-intro-in .22s ease-out both; }
.gym-battle-intro-leader > img { width:112px; height:112px; object-fit:contain; image-rendering:pixelated; filter:drop-shadow(0 9px 7px #0009); }
.gym-battle-intro-leader > span { display:grid; justify-items:start; gap:4px; text-align:left; }
.gym-battle-intro-leader small { color:var(--mastery-accent); font-size:8px; letter-spacing:.16em; }
.gym-battle-intro-leader strong { font-size:30px; }
.gym-battle-intro-leader b,.gym-battle-intro-leader em { color:#a6c0cf; font-size:10px; font-style:normal; }
.gym-battle-intro-leader q { max-width:340px; margin-top:5px; color:#dbe9ef; font-size:11px; font-style:italic; line-height:1.4; quotes:"“" "”"; }
.gym-battle-intro-type { width:24px; height:24px; margin-top:4px; image-rendering:pixelated; }
.gym-battle-phase[data-intro-stage="versus"] .gym-battle-intro-versus { display:flex; align-items:center; gap:20px; animation:gym-intro-in .22s ease-out both; }
.gym-battle-intro-versus span { display:flex; align-items:center; gap:5px; color:#edf8ff; font-size:18px; }
.gym-battle-intro-versus span em { padding:3px 5px; border:1px solid #ab89e0; border-radius:4px; color:#d8c4ff; font-size:7px; }
.gym-battle-intro-versus b { color:var(--mastery-accent); font-size:34px; text-shadow:0 0 14px var(--mastery-accent-soft); }
.gym-battle-phase[data-intro-stage="send"] { opacity:0; pointer-events:none; }
.gym-battle-phase[data-intro-stage="countdown"] .gym-battle-intro-countdown { display:flex; flex-direction:column; align-items:center; }
.gym-battle-intro-countdown strong { font-size:58px; }
.gym-battle-phase.is-ace { background:radial-gradient(circle,#553f1a99,#06131ed9 64%); }
.gym-battle-phase.is-shiny-entry { box-shadow:inset 0 0 70px #9e75d538; }
@keyframes gym-intro-in { from { opacity:0; transform:translateY(7px) scale(.98); } to { opacity:1; transform:none; } }
.gym-battle-defeat-speech { position:absolute; z-index:13; inset:0; display:flex; align-items:center; justify-content:center; gap:18px; padding:24px; background:#06131eea; }
.gym-battle-defeat-speech.hidden { display:none; }
.gym-battle-defeat-speech img { width:96px; height:96px; object-fit:contain; image-rendering:pixelated; filter:drop-shadow(0 7px 5px #0009); }
.gym-battle-defeat-speech span { display:flex; max-width:390px; flex-direction:column; gap:6px; }
.gym-battle-defeat-speech strong { color:var(--mastery-accent); font-size:22px; }
.gym-battle-defeat-speech q { color:#dbe9ef; font-size:12px; font-style:italic; line-height:1.5; }
.gym-battle-window.is-phase-opponent-transition .gym-battle-phase { background:#06131ebd; }
.gym-battle-window.is-phase-opponent-entry .gym-battle-fighter.is-opponent { visibility:visible; }
.gym-battle-fighter.is-switching-out { visibility:hidden; }
@keyframes gym-battle-heal { 0%,100% { filter:none; transform:scale(1); } 45% { filter:brightness(1.35) drop-shadow(0 0 12px #57d98b99); transform:scale(1.035); } }
@keyframes gym-critical-hp { 0%,100% { filter:brightness(.92); } 50% { filter:brightness(1.22); } }
@keyframes gym-ball-sheet { from { transform:translateY(0); } to { transform:translateY(calc(-1 * var(--gym-ball-sheet-height))); } }
@keyframes gym-ball-send { 0%,35% { opacity:0; transform:scale(.22); } 100% { opacity:1; transform:scale(1); } }
@keyframes gym-ball-recall { from { opacity:1; transform:scale(1); } to { opacity:0; transform:scale(.18); } }

@media (max-width:900px) {
  .gym-browser-header { grid-template-columns:minmax(210px,.75fr) minmax(360px,1.25fr); gap:12px; }
  .gym-campaign-progress { padding-left:12px; }
  .gym-content-grid { grid-template-columns:minmax(0,1.45fr) minmax(270px,1fr); }
  .gym-leader-card { grid-template-columns:82px minmax(0,1fr) minmax(122px,auto); gap:11px; }
  .gym-leader-portrait { width:82px; }
  .gym-leader-portrait img { width:80px; height:80px; }
}
@media (max-width:760px) {
  .travel-subnav button { min-width:0; flex:1; }
  .gym-panel { overflow:auto; }
  .gym-browser { height:auto; min-height:100%; overflow:visible; }
  .gym-browser-header { grid-template-columns:1fr; align-items:stretch; padding:13px; }
  .gym-campaign-progress { padding:10px 0 0; border-top:1px solid #284457; border-left:0; }
  .gym-badge-progress { gap:4px; }
  .gym-progress-badge-icon { width:24px; height:24px; }
  .gym-mode-row { width:100%; flex-wrap:nowrap; }
  .gym-mode-row > button { min-width:0; flex:1; }
  .gym-global-cooldown { width:100%; }
  .gym-content-grid { display:flex; flex-direction:column; overflow:visible; }
  .gym-leader-list { flex:none; overflow:visible; }
  .gym-detail { position:static; width:100%; }
  .gym-detail-leader { grid-template-columns:96px minmax(0,1fr); }
  .gym-detail-portrait { width:96px; height:104px; }
  .gym-detail-portrait > img { width:90px; height:90px; }
  .gym-battle-arena { padding-inline:8px; }
  .gym-battle-teams { right:10px; left:10px; }
  .gym-battle-team small { display:none; }
  .gym-battle-intro-leader > img { width:88px; height:88px; }
  .gym-battle-intro-leader strong { font-size:23px; }
  .gym-battle-intro-versus { gap:10px !important; }
  .gym-battle-intro-versus span { font-size:13px; }
  .gym-battle-intro-leader q { max-width:250px; font-size:9px; }
  .gym-battle-leader { right:-10%; top:-4%; width:72px; height:84px; }
  .gym-battle-leader img { width:68px !important; height:68px !important; }
  .gym-battle-arena.is-themed-arena .gym-battle-leader { right:-12%; top:-32%; }
  .gym-battle-arena.is-themed-arena .mastery-battle-fighter-copy { width:min(38%,190px); }
  .gym-battle-arena.is-themed-arena .gym-battle-fighter.is-player .mastery-battle-fighter-copy { bottom:8px; left:8px; }
  .gym-battle-arena.is-themed-arena .gym-battle-fighter.is-opponent .mastery-battle-fighter-copy { top:36px; right:8px; }
  .gym-battle-running { align-items:stretch; flex-direction:column; text-align:center; }
}

@media (max-width:500px) {
  .gym-leader-card { grid-template-columns:76px minmax(0,1fr); gap:10px; min-height:146px; padding:9px; }
  .gym-leader-portrait { grid-row:1 / 3; width:76px; height:104px; }
  .gym-leader-portrait img { width:74px; height:74px; }
  .gym-leader-meta { grid-column:2; min-width:0; flex-direction:row; align-items:center; padding:8px 0 0; border-top:1px solid #263f52; border-left:0; text-align:left; }
  .gym-leader-level { align-items:flex-start; }
  .gym-campaign-progress-copy { flex-wrap:wrap; justify-content:flex-start; }
  .gym-campaign-progress-copy > span { width:100%; }
  .gym-badge-progress-step > small { display:none; }
  .gym-progress-badge-icon { width:22px; height:22px; }
  .gym-detail-leader { grid-template-columns:86px minmax(0,1fr); align-items:flex-start; }
  .gym-detail-portrait { width:86px; height:86px; }
  .gym-detail-portrait > img { width:80px; height:80px; }
  .gym-detail-badge { position:static; grid-column:1 / -1; justify-content:center; }
  .gym-detail-identity { padding-bottom:0; }
  .gym-detail-quick-facts { grid-template-columns:1fr; }
  .gym-detail-quick-facts > .gym-detail-status { grid-column:auto; }
  .gym-battle-window .gym-battle-result { padding-inline:12px; }
  .gym-result-badge > span { width:66px; height:66px; }
  .gym-result-badge img { width:58px; height:58px; }
  .gym-result-rewards > div { grid-template-columns:1fr; }
  .gym-result-reward.is-outfit { grid-column:auto; }
  .gym-result-summary > div { grid-template-columns:1fr; }
  .gym-result-summary span { min-height:34px; }
  .gym-battle-potion-callout { min-width:0; width:calc(100% - 32px); }
  .gym-battle-log-flags { display:none; }
  .gym-battle-defeat-speech { gap:10px; padding:14px; }
  .gym-battle-defeat-speech img { width:72px; height:72px; }
  .gym-battle-defeat-speech strong { font-size:17px; }
  .gym-battle-defeat-speech q { font-size:10px; }
  .gym-battle-arena.is-themed-arena .mastery-battle-fighter-copy { width:42%; padding:5px; }
  .gym-battle-arena.is-themed-arena .mastery-battle-fighter-copy small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
}

@media (max-height:720px) and (min-width:621px) {
  .gym-battle-window { height:calc(100dvh - 20px); max-height:calc(100dvh - 20px); }
  .gym-battle-header { padding-block:8px; }
  .gym-battle-arena { padding-block:8px; }
  .gym-battle-window .mastery-battle-sprite { width:126px; height:126px; }
  .gym-battle-window .mastery-battle-sprite > img[data-pokemon-ui-sprite] { width:116px; height:116px; }
  .gym-battle-leader { width:84px; height:100px; }
  .gym-battle-leader img { width:78px !important; height:78px !important; }
  .gym-battle-window .mastery-battle-log { min-height:52px; max-height:72px; flex-basis:72px; }
}

@media (prefers-reduced-motion:reduce) {
  .gym-leader-card { transition:none; }
  .gym-result-badge.is-earned > span { animation:none; }
  .gym-battle-fighter.is-healing .mastery-battle-sprite { animation:none; }
  .gym-battle-intro-leader,.gym-battle-intro-versus { animation:none !important; }
  .gym-battle-team-ball,.gym-battle-potion-callout { transition:none; }
  .gym-battle-fighter.is-critical-hp:not(.is-ko) .mastery-battle-hp-track i,.gym-battle-fighter.is-ball-sending .gym-battle-ball-effect > i,.gym-battle-fighter.is-ball-recalling .gym-battle-ball-effect > i,.gym-battle-fighter.is-ball-sending .mastery-battle-sprite > img[data-pokemon-ui-sprite],.gym-battle-fighter.is-ball-recalling .mastery-battle-sprite > img[data-pokemon-ui-sprite] { animation:none; }
}
