:root{--footer-height:116px}
.game-footer{position:absolute;z-index:25;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:18px;padding:10px 20px max(10px,env(safe-area-inset-bottom));background:linear-gradient(180deg,#314651,#1a2b34 12%,#14232c);border-top:3px solid #b9a773;box-shadow:0 -5px 0 #17272e,0 -12px 30px #08151c55;color:#e8e9d8}
.game-footer .glass{border-radius:3px;box-shadow:none;backdrop-filter:none;background:#12222ca6}
.game-footer .left-tools,.game-footer .right-tools,.game-footer .hud-bottom{position:static;inset:auto;transform:none;margin:0;max-width:none;width:auto;visibility:visible;display:flex;align-items:center;gap:8px}
.game-footer .left-tools{flex-direction:row;border-right:1px solid #75878a55;padding-right:16px}
.game-footer .map-button{width:86px;padding:3px;border:1px solid #b3a477;position:relative}
.game-footer .map-button canvas{width:76px;height:66px;object-fit:cover;border-radius:0}
.game-footer .map-button>span{font-size:9px;gap:3px;padding:2px;white-space:nowrap;max-width:76px;overflow:hidden;text-overflow:ellipsis}
.game-footer .zoom{display:flex;flex-direction:column;align-items:center;width:26px;padding:0;gap:0}.game-footer .zoom button{width:26px;height:25px;font-size:17px}.game-footer .zoom span{font-size:9px}
.game-footer .right-tools{display:grid;grid-template-columns:repeat(2,58px);gap:5px;border-right:1px solid #75878a55;padding-right:16px}
.game-footer .mission,.game-footer .community{min-width:0;width:58px;height:40px;padding:4px;display:flex;justify-content:center;align-items:center;border:1px solid #748c9655;background:#213541}
.game-footer .mission>span:nth-child(2),.game-footer .mission .chevron,.game-footer .community>div{display:none}.game-footer .mission-icon{font-size:22px;padding:0;background:none;width:auto;height:auto}.game-footer .community>span{font-size:25px}
.game-footer .quick-services{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:0}.game-footer .quick-services button{height:37px;min-width:0;padding:3px;border:1px solid #748c9655;background:#213541;border-radius:2px}.game-footer .quick-services img{width:20px;height:20px;object-fit:contain}.game-footer .quick-services span{display:none}
.game-footer .hud-bottom{gap:18px;flex-direction:row}.game-footer .party-bar{padding:5px;border:0;gap:4px;background:transparent}.game-footer .party-slot{width:54px;height:70px}.game-footer .party-open{width:28px;padding:2px}.game-footer .dock{display:flex;padding:3px;border:0;border-left:1px solid #75878a55;gap:4px;background:transparent}.game-footer .dock button{width:58px;height:76px;padding:5px;border:1px solid #71848a55;background:#213541}.game-footer .dock img{width:28px;height:28px;object-fit:contain}.game-footer .dock small{font-size:10px}.game-footer>#menu{width:36px;height:76px;font-size:20px}
.hud-top .location{padding:9px 12px;min-width:0}.hud-top .location h1{font-size:17px}.hud-top .location .pin{display:none}.hud-top .wallet{height:38px;padding:0 10px}.hud-top .auto{padding:10px 16px}.hint{display:none}
#chat:not(.is-positioned),body.manual-battle #chat:not(.is-positioned){bottom:calc(var(--footer-height) + 14px);left:14px;max-width:280px}
.manual-dock:not(.duel-dock),.manual-dock.encounter-prompt{bottom:calc(var(--footer-height) + 14px)}
.manual-battle .game-footer .hud-bottom{visibility:visible}.manual-battle:not(.encounter-choice) #chat:not(.is-positioned){visibility:hidden}.touch-controls{bottom:calc(var(--footer-height) + 12px)}
@media(max-width:1100px){.game-footer{gap:8px;padding:8px}.game-footer .left-tools,.game-footer .right-tools{padding-right:8px}.game-footer .hud-bottom{gap:6px}.game-footer .party-slot{width:44px;height:62px}.game-footer .party-slot img{width:36px;height:36px}.game-footer .dock button{width:46px;height:66px}.game-footer .right-tools{grid-template-columns:repeat(2,46px)}.game-footer .mission,.game-footer .community{width:46px}.game-footer .map-button{width:70px}.game-footer .map-button canvas{width:60px;height:58px}}
@media(max-width:700px){.game-footer{display:grid;grid-template-columns:76px 1fr 30px;gap:6px;padding:6px 8px max(7px,env(safe-area-inset-bottom))}.game-footer .left-tools{grid-column:1;grid-row:1 / 3;padding:0;border:0;gap:2px;flex-direction:column}.game-footer .map-button{width:72px}.game-footer .map-button canvas{width:62px;height:55px}.game-footer .zoom{flex-direction:row;width:72px;justify-content:space-between}.game-footer .zoom button{height:22px;width:24px}.game-footer .right-tools{grid-row:2;grid-column:2;display:flex;padding:0;border:0;gap:4px}.game-footer .mission,.game-footer .community{width:30px;height:33px;flex-shrink:0}.game-footer .quick-services{display:flex;gap:3px;flex:1}.game-footer .quick-services button{width:28px;height:33px;flex:1}.game-footer .hud-bottom{display:contents}.game-footer .party-bar{grid-column:2/4;grid-row:1;padding:0;gap:3px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr)) 22px;width:100%;min-width:0}.game-footer .party-slot{width:100%;height:48px;min-width:0;padding:5px 0}.game-footer .party-slot img{width:29px;height:29px}.game-footer .party-level{font-size:7px;left:3px;top:2px}.game-footer .party-open{width:22px;font-size:16px}.game-footer .dock{grid-column:1/4;grid-row:3;justify-content:center;border:0;padding:0;gap:5px}.game-footer .dock button{height:34px;width:auto;flex:1;display:flex;align-items:center;justify-content:center;gap:7px}.game-footer .dock img{width:23px;height:23px}.game-footer .dock small{font-size:10px}.game-footer>#menu{grid-column:3;grid-row:2;height:33px;width:30px;font-size:16px}.hud-top{top:10px;left:10px;right:10px}.hud-top .location{padding:6px 8px}.hud-top .location small{font-size:7px}.hud-top .location h1{font-size:14px}.hud-top .wallet{padding:0 5px;font-size:10px;height:30px}.hud-top .wallet img{width:19px;height:19px}.hud-top .wallet-divider{margin:0 3px}.hud-top .auto{top:70px}.journey-auto{top:116px}.trainer-level{font-size:9px}#chat:not(.is-positioned),body.manual-battle #chat:not(.is-positioned){bottom:calc(var(--footer-height) + 9px);max-width:200px}.touch-controls{bottom:calc(var(--footer-height) + 64px)}.manual-dock:not(.duel-dock){width:calc(100% - 16px);max-height:45dvh;overflow:auto;padding:10px}.encounter-choice #chat:not(.is-positioned){visibility:hidden}}

.game-footer .map-button{display:block}.game-footer .mission-icon{display:grid;color:#e8ce8d;min-width:20px}.game-footer button:focus-visible{outline:2px solid #ffe1a0;outline-offset:2px}.game-footer button:hover{background-color:#36515d}.game-footer .quick-services button{position:relative}.game-footer .quick-services button:focus-visible::after,.game-footer .quick-services button:hover::after{content:attr(title);position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%);white-space:nowrap;background:#12232d;border:1px solid #bba778;padding:6px 9px;font-size:11px;z-index:3;color:#f2e7c9}
@media(max-width:700px){.game-footer .quick-services button{min-height:40px}.game-footer .mission,.game-footer .community,.game-footer>#menu{height:40px}.game-footer .dock button{height:40px}.game-footer .zoom button{height:26px}.game-footer .right-tools{min-width:0}}
/* Optical bounds are normalized in SVG viewBoxes; each control has a centered icon slot. */
.game-footer .quick-services button{display:flex;align-items:center;justify-content:center;line-height:1}
.game-footer .quick-services img{display:block;width:20px;height:20px;margin:0;flex:none}
.game-footer .dock button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-width:0}
.game-footer .dock img{display:block;width:26px;height:26px;margin:0;background:none;object-fit:contain;flex:none}
.game-footer .dock small{display:block;line-height:12px;text-align:center;margin:0}
.game-footer #dex img{width:24px;height:26px}
.game-footer .mission-icon,.game-footer .community>span{margin:0;line-height:1;align-items:center;justify-content:center}
@media(max-width:700px){.game-footer .dock button{flex-direction:row;gap:8px}.game-footer .dock img{width:24px;height:24px}.game-footer #dex img{width:22px;height:24px}.game-footer .quick-services img{width:19px;height:19px}}
/* Trainer progression and authoritative encounter rewards share the footer anchor. */
.trainer-progress{display:none!important}
.trainer-xp{position:absolute;z-index:27;bottom:calc(var(--footer-height) + 12px);left:50%;transform:translateX(-50%);width:230px;color:#e9e8cf}
.trainer-xp-button{width:100%;display:flex;align-items:center;gap:12px;padding:7px 12px;background:#172a32ed;border:1px solid #b9a773;border-radius:16px;box-shadow:0 2px 8px #0006;color:inherit;cursor:pointer}
.trainer-xp-button strong{white-space:nowrap;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#e9ce84}
.trainer-xp-track{flex:1;height:7px;background:#0a1720;border:1px solid #6f725b;border-radius:5px;overflow:hidden}.trainer-xp-track i{display:block;height:100%;background:linear-gradient(90deg,#b49b53,#f1d683);transition:width .4s ease}
.trainer-xp-details{display:none;position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%);width:260px;padding:13px 16px;background:#13252cf5;border:1px solid #ad9d70;box-shadow:0 5px 18px #0007;border-radius:5px;gap:5px;font-size:12px;text-align:center;pointer-events:none}.trainer-xp-details small{color:#aebfc2}.trainer-xp:hover .trainer-xp-details,.trainer-xp:focus-within .trainer-xp-details,.trainer-xp.is-open .trainer-xp-details{display:grid}.trainer-xp-button:focus-visible{outline:2px solid #ffe1a0;outline-offset:3px}
#event{position:absolute;inset:auto auto calc(var(--footer-height) + 54px) 50%;transform:translateX(-50%);width:max-content;max-width:min(420px,calc(100vw - 24px));padding:12px 16px;z-index:26;border:1px solid #ad9d70;border-radius:5px;background:#13252cf5;pointer-events:none}#event[hidden]{display:none}#eventText{display:flex;flex-wrap:wrap;gap:5px 12px;margin:5px 0 0;font-size:11px;line-height:1.5}#eventText .reward-trainer{color:#eed181}#eventText .reward-coins{color:#e8dfbd}#eventText .reward-pokemon{color:#99d6ed;flex-basis:100%}#eventText .reward-item{color:#a9d397;flex-basis:100%}
.manual-battle .trainer-xp,body.in-duel .trainer-xp{display:none}
@media(max-width:700px){.trainer-xp{width:200px;bottom:calc(var(--footer-height) + 9px)}#event{bottom:calc(var(--footer-height) + 50px);padding:10px 12px}.trainer-xp-details{width:240px}}
@media(max-width:700px){.trainer-xp{bottom:calc(var(--footer-height) + 52px)}#event{bottom:calc(var(--footer-height) + 93px)}}
/* Unified automation control */
.auto-cluster{position:absolute;top:22px;left:50%;transform:translateX(-50%);z-index:28;display:flex;align-items:center;gap:0;padding:4px;background:#12232ded;border:1px solid #a6976b;border-radius:8px;box-shadow:0 3px 10px #0005}.auto-cluster #auto{position:static;inset:auto;transform:none;border:0;border-radius:4px 0 0 4px;padding:12px 18px;min-width:128px;box-shadow:none;background:#233842;color:#e8dfc3}.auto-cluster #auto[aria-pressed=true]{background:#355343;color:#d6edb9}.auto-cluster .journey-auto{position:static;inset:auto;transform:none;width:auto;display:flex}.auto-cluster .journey-auto>button:first-child{position:static;inset:auto;border:0;border-left:1px solid #87967966;border-radius:0 4px 4px 0;min-width:42px;min-height:40px;background:#233842}.auto-cluster .manual-entry{position:absolute;top:calc(100% + 8px);left:0;width:100%}.auto-cluster button:focus-visible{outline:2px solid #ffe1a1;outline-offset:2px}
#modal.auto-window{width:min(700px,calc(100vw - 24px));max-height:90dvh} .auto-window #modalBody{padding:16px 22px;max-height:calc(90dvh - 80px)}.auto-editor{color:#d9e4df}.auto-intro{font-size:12px;line-height:1.6;color:#b1c5c5;margin:0 0 16px}.auto-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:20px;position:sticky;top:-16px;z-index:2;background:#172933;padding:8px 0}.auto-tab{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 5px;background:#203640;border:1px solid #587079;border-radius:5px;color:#bacdcd;cursor:pointer}.auto-tab img{width:28px;height:28px;image-rendering:pixelated;object-fit:contain}.auto-tab[aria-pressed=true]{color:#f1dfad;border-color:#c7b174;background:#3a493f;box-shadow:inset 0 -2px #c7b174}.auto-page[hidden]{display:none}.auto-card{min-width:0;margin:0 0 20px;padding:12px 16px;border:1px solid #526b7066;border-radius:7px;background:#11232b88}.auto-card legend{padding:0 8px;color:#e3cf96;font-size:14px;font-weight:700}.auto-description{color:#a7bfc4;font-size:12px;line-height:1.6;margin:0 0 7px}.auto-field{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;border-top:1px solid #788c8526}.auto-field-copy{min-width:0;flex:1}.auto-field-copy strong{display:block;font-size:13px;font-weight:600}.auto-field-copy small{display:block;font-size:11px;line-height:1.5;color:#9fb6be;margin-top:5px}.auto-field input[type=number]{width:86px;min-height:40px;background:#0d2029;border:1px solid #57727a;color:#edd9a0;border-radius:4px;text-align:center}.auto-field select{max-width:230px;width:46%;min-height:40px;background:#0d2029;color:#e0e7d6;border:1px solid #57727a;border-radius:4px;padding:8px;font-size:12px}.auto-field input[type=checkbox]{appearance:none;flex:none;width:42px;height:24px;border:1px solid #668087;background:#192c37;border-radius:20px;position:relative;cursor:pointer}.auto-field input[type=checkbox]:before{content:'';position:absolute;width:16px;height:16px;left:3px;top:3px;border-radius:50%;background:#8da5ae;transition:transform .15s}.auto-field input:checked{background:#466645;border-color:#a3c58a}.auto-field input:checked:before{transform:translateX(18px);background:#dfefbb}.auto-editor :focus-visible{outline:2px solid #ffe0a0;outline-offset:3px}.auto-summary{padding:12px;border-left:3px solid #bca772;color:#bcd0ce;font-size:11px;line-height:1.6;background:#0f232b}.auto-route-list{display:grid;grid-template-columns:1fr 1fr;max-height:220px;overflow:auto;gap:8px}.auto-route-list label{display:flex;align-items:center;gap:8px;padding:8px;font-size:12px}.auto-route-list input{accent-color:#abc488;width:18px;height:18px}.auto-savebar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;bottom:-16px;background:#172933;padding:12px 0;border-top:1px solid #66807a55}.auto-savebar button{min-height:44px;padding:10px 25px}.auto-feedback{font-size:12px;color:#f0be84}.auto-window button:hover{filter:brightness(1.12)}
@media(max-width:700px){.auto-cluster{top:84px;left:auto;right:10px;transform:none}.auto-cluster #auto{min-width:110px;padding:10px}.auto-window #modalBody{padding:12px}.auto-tabs{gap:4px;top:-12px}.auto-tab{flex-direction:column;gap:3px;font-size:11px;padding:7px 2px}.auto-card{padding:10px}.auto-field{gap:10px}.auto-field-copy strong{font-size:12px}.auto-field select{max-width:145px}.auto-savebar{bottom:-12px}.auto-route-list{grid-template-columns:1fr}}
.auto-item-field{display:block}.auto-item-picker{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.auto-item-choice{display:flex;align-items:center;gap:7px;min-height:44px;padding:6px 10px;color:#dbe5df;border:1px solid #5a7279;background:#162b35;border-radius:5px;font-size:12px}.auto-item-choice img,.auto-ball-hp img{width:30px;height:30px;object-fit:contain;image-rendering:pixelated}.auto-item-choice small{color:#b8d1bb}.auto-item-choice[aria-pressed=true]{border-color:#ddc37e;background:#3b4c3b;box-shadow:inset 0 0 0 1px #ddc37e}.auto-stock-warning{display:block;width:100%;color:#cfb982;font-size:11px}.auto-rule{border:1px solid #637b7966;background:#122730;padding:12px;margin:12px 0;border-radius:5px}.auto-rule>strong{color:#e4ca8c}.auto-rule-tools{display:flex;gap:6px;margin:8px 0}.auto-rule button{cursor:pointer}.auto-rule-tools button{padding:8px;background:#263e48;border:1px solid #638089;color:#e3e5d6}.auto-rule-tools button:disabled{opacity:.35;cursor:default}.auto-rule label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;margin-top:10px}.auto-rule select{width:100%;min-height:40px;margin-top:8px;background:#142a35;color:#dfebdf;border:1px solid #647f84;padding:8px}.auto-rule label select{width:70%}.auto-rule input[type=number]{width:70px;min-height:40px;background:#142a35;color:#dfebdf;border:1px solid #647f84;text-align:center}.auto-ball-hp{display:grid;grid-template-columns:30px 1fr 45px;align-items:center;gap:8px;padding:12px 0;border-top:1px solid #60787944;font-size:12px}.auto-ball-hp output{color:#e6ce89;text-align:right}.auto-ball-hp input{grid-column:1/-1;width:100%;accent-color:#d2b873;min-height:28px}
.auto-item-field>strong,.auto-item-field>small{display:block}.auto-item-field>small{margin:5px 0 0;line-height:1.5}.auto-item-field>strong{font-size:13px}
#modal.pvp-lobby-window{width:min(640px,calc(100vw - 24px))}.pvp-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pvp-mode{display:grid;grid-template-columns:36px 1fr;gap:6px 10px;padding:15px;text-align:left;border:1px solid #617a82;background:#142a34;color:#dfebdf;border-radius:5px;cursor:pointer}.pvp-mode img{width:32px;height:32px;image-rendering:pixelated;grid-row:1/3}.pvp-mode small{font-size:11px;color:#a8bfc7;line-height:1.5}.pvp-mode:last-child{grid-column:1/-1}.pvp-mode[aria-pressed=true]{border-color:#dbc386;background:#3a483d;box-shadow:inset 0 -2px #dbc386}.ranked-card{position:relative;padding:18px 18px 18px 90px;margin:18px 0;background:linear-gradient(120deg,#233e49,#162631);border:1px solid #8d9675;border-radius:6px}.ranked-card h3{color:#ead295;margin:0 0 8px}.ranked-card p{font-size:12px}.ranked-card small{color:#aec4c8}.rank-medal{position:absolute;left:18px;top:22px;border:3px double #d8be7e;background:#203744;clip-path:polygon(50% 0,100% 20%,95% 75%,50% 100%,5% 75%,0 20%);width:52px;height:62px;display:grid;place-items:center;font-size:23px;color:#ebd19a;font-weight:bold}.rank-progress{height:5px;background:#10212a;margin:12px 0}.rank-progress i{display:block;height:100%;background:#ddc17d}.pvp-validation{background:#543c2c55;border:1px solid #af8963;padding:12px;margin:12px 0;font-size:12px;color:#e7c89e;line-height:1.5}.pvp-team-preview{padding:12px;background:#12252e;border:1px solid #536e75;margin:15px 0}.pvp-team-preview h3{font-size:13px;margin:0 0 12px}.pvp-team-slots{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.pvp-team-slot{height:65px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;background:#203640;border:1px solid #536d75}.pvp-team-slot img{width:36px;height:36px;image-rendering:pixelated}.pvp-team-slot small{font-size:10px}.pvp-note{font-size:11px;line-height:1.6;color:#afc4cb}.pvp-search{width:100%;min-height:46px;margin:12px 0}.pvp-history{border-top:1px solid #6d857c66;padding:12px 0;font-size:12px}.pvp-history summary{cursor:pointer;color:#d5c18d}.pvp-history p{line-height:1.6}.pvp-queue-time{text-align:center;color:#ddc686;font-size:12px}.pvp-mode:focus-visible{outline:2px solid #ffe1a0;outline-offset:3px}.game-footer .dock{gap:4px}@media(max-width:700px){.pvp-modes{gap:6px}.pvp-mode{padding:10px;grid-template-columns:25px 1fr;gap:5px}.pvp-mode img{width:24px;height:24px}.pvp-mode strong{font-size:12px}.pvp-mode small{font-size:10px}.ranked-card{padding:14px 12px 14px 70px}.rank-medal{left:10px;width:46px}.pvp-team-slots{gap:3px}.pvp-team-slot img{width:30px;height:30px}.game-footer .dock button{gap:4px;font-size:10px}}
.rank-medal{border:0;clip-path:none;background:transparent;color:var(--rank-color);isolation:isolate;font-size:22px;text-shadow:0 2px #0b1720}.rank-medal:before{content:'';position:absolute;inset:0;z-index:-2;background:var(--rank-color);clip-path:polygon(15% 0,85% 0,100% 15%,100% 65%,85% 85%,50% 100%,15% 85%,0 65%,0 15%)}.rank-medal:after{content:'';position:absolute;inset:4px;z-index:-1;background:linear-gradient(150deg,#45616b,#162731);clip-path:polygon(15% 0,85% 0,100% 15%,100% 65%,85% 85%,50% 100%,15% 85%,0 65%,0 15%)}.rank-ladder{font-size:11px;line-height:1.8;margin-top:12px}.rank-ladder summary{cursor:pointer;color:#e0d19c}.rank-ladder div{border-bottom:1px solid #66818a44;padding:4px 0}.pvp-search-footer{position:sticky;bottom:-20px;background:#172b35f5;border-top:1px solid #6f8387;padding:2px 0;z-index:2}.pvp-search-footer .pvp-search{margin:8px 0}.pvp-launcher.searching{border-color:#d9bb73!important;box-shadow:inset 0 0 12px #e2bd6430}.pvp-mode:hover:not(:disabled){border-color:#d7c587;background:#29414a}.pvp-history summary:focus-visible,.rank-ladder summary:focus-visible{outline:2px solid #edd399;outline-offset:3px}
#modal.pvp-lobby-window[open]{display:flex;flex-direction:column;max-height:min(90dvh,900px)}#modal.pvp-lobby-window>header{flex:none}#modal.pvp-lobby-window #modalBody{min-height:0;overflow:auto;max-height:none;flex:1}.pvp-search-footer{bottom:0}
