:root{--bg:#141A1F;--panel:#202830;--panel2:#29333D;--line:#3B4853;--text:#F4F6F8;--muted:#B3BEC8;--accent:#f4c542;--blue:#79b8ff;--green:#70d6a4;--red:#ff8181}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#253038 0,#141A1F 58%);color:var(--text);font:16px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}
main{max-width:1120px;margin:auto;padding:24px 16px 56px}.hero{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:20px}
h1{font-family:"Press Start 2P",system-ui,sans-serif;font-size:clamp(.85rem,2.4vw,1.35rem);line-height:1.7;letter-spacing:0;margin:0 0 8px}.sub{color:var(--muted);max-width:720px}.pill{border:1px solid #78682b;color:#ffe28a;background:#3a321a;border-radius:999px;padding:7px 12px;font-size:.82rem;font-weight:700}
.panel{background:linear-gradient(160deg,rgba(42,51,59,.97),rgba(32,40,48,.97));border:1px solid var(--line);border-radius:18px;padding:18px;margin:14px 0;box-shadow:0 12px 32px #0002}
h2{margin:0 0 12px;font-size:1.25rem}h3{margin:0;font-size:1.05rem}.muted{color:var(--muted)}.tiny{font-size:.82rem;color:var(--muted)}
.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.space{justify-content:space-between}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.teamgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.card{background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:7px;min-width:0}
.monhead{display:flex;align-items:center;gap:10px}.sprite{width:66px;height:66px;flex:0 0 66px;display:grid;place-items:center;border-radius:12px;background:#171D22;overflow:hidden}.sprite img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.monname{font-weight:800;font-size:1.08rem;text-transform:capitalize}.meta{font-size:.82rem;color:var(--muted);text-transform:capitalize}.types{display:flex;gap:5px;flex-wrap:wrap}.type{font-size:.72rem;font-weight:800;padding:3px 7px;border-radius:6px;background:#3B4853;color:white;text-transform:uppercase;letter-spacing:.03em}
.mon-card{position:relative;min-height:0}.mon-card .sprite{width:58px;height:58px;flex-basis:58px}.mon-summary{min-width:0}.card-number{position:absolute;top:10px;right:12px;color:#9eabc3;font-size:.78rem;font-weight:800}.move-list{background:#1A2228;border:1px solid #3B4853;border-radius:10px;padding:10px 11px}.move-heading{font-size:.8rem;font-weight:800;color:#dce5f8;margin-bottom:7px}.move-list ul{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;list-style:none;margin:0;padding:0}.move-list li{display:flex;align-items:center;gap:7px;min-width:0;font-size:.84rem;line-height:1.3}.move-list li span:last-child{overflow-wrap:anywhere}.move-kind{flex:0 0 auto;color:#9eabc3;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.card-footer{margin-top:auto;color:var(--muted);font-size:.72rem}
.type-accent{position:relative;overflow:hidden;background:linear-gradient(145deg,color-mix(in srgb,var(--type-a,var(--panel2)) 15%,var(--panel2)),color-mix(in srgb,var(--type-b,var(--panel2)) 12%,var(--panel2)));border-color:color-mix(in srgb,var(--type-a,var(--line)) 38%,var(--line))}
.type-accent::before{content:"";position:absolute;z-index:1;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--type-a,#3B4853) 0 50%,var(--type-b,var(--type-a,#3B4853)) 50% 100%)}
.type-accent>*:not(.card-number){position:relative;z-index:2}.type-accent>.card-number{z-index:2}
.type-grass{--type-color:#58a052}.type-fire{--type-color:#eb563b}.type-water{--type-color:#438fce}.type-electric{--type-color:#e4bd32}.type-psychic{--type-color:#9c55a8}.type-fighting{--type-color:#bd7440}.type-dark{--type-color:#515564}.type-steel{--type-color:#929eaa}.type-normal{--type-color:#c9c4ba}.type-ice{--type-color:#76bbd6}.type-poison{--type-color:#9361ad}.type-ground{--type-color:#a77a50}.type-flying{--type-color:#839fbd}.type-bug{--type-color:#639c47}.type-rock{--type-color:#ad875f}.type-ghost{--type-color:#78529c}.type-dragon{--type-color:#b49a39}
.type-accent.primary-grass{--type-a:#58a052}.type-accent.secondary-grass{--type-b:#58a052}.type-accent.primary-fire{--type-a:#eb563b}.type-accent.secondary-fire{--type-b:#eb563b}.type-accent.primary-water{--type-a:#438fce}.type-accent.secondary-water{--type-b:#438fce}.type-accent.primary-electric{--type-a:#e4bd32}.type-accent.secondary-electric{--type-b:#e4bd32}.type-accent.primary-psychic{--type-a:#9c55a8}.type-accent.secondary-psychic{--type-b:#9c55a8}.type-accent.primary-fighting{--type-a:#bd7440}.type-accent.secondary-fighting{--type-b:#bd7440}.type-accent.primary-dark{--type-a:#515564}.type-accent.secondary-dark{--type-b:#515564}.type-accent.primary-steel{--type-a:#929eaa}.type-accent.secondary-steel{--type-b:#929eaa}.type-accent.primary-normal{--type-a:#c9c4ba}.type-accent.secondary-normal{--type-b:#c9c4ba}.type-accent.primary-ice{--type-a:#76bbd6}.type-accent.secondary-ice{--type-b:#76bbd6}.type-accent.primary-poison{--type-a:#9361ad}.type-accent.secondary-poison{--type-b:#9361ad}.type-accent.primary-ground{--type-a:#a77a50}.type-accent.secondary-ground{--type-b:#a77a50}.type-accent.primary-flying{--type-a:#839fbd}.type-accent.secondary-flying{--type-b:#839fbd}.type-accent.primary-bug{--type-a:#639c47}.type-accent.secondary-bug{--type-b:#639c47}.type-accent.primary-rock{--type-a:#ad875f}.type-accent.secondary-rock{--type-b:#ad875f}.type-accent.primary-ghost{--type-a:#78529c}.type-accent.secondary-ghost{--type-b:#78529c}.type-accent.primary-dragon{--type-a:#b49a39}.type-accent.secondary-dragon{--type-b:#b49a39}
.type{background:color-mix(in srgb,var(--type-color,#3B4853) 58%,#202830);border-color:color-mix(in srgb,var(--type-color,#3B4853) 72%,#29333D)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.stat{background:#1A2228;border-radius:8px;padding:5px;text-align:center;font-size:.75rem;color:var(--muted)}.stat b{display:block;color:var(--text);font-size:.9rem}
button{cursor:pointer;border:0;border-radius:10px;padding:11px 13px;font-weight:800;background:var(--accent);color:#24200d;font-size:.94rem}button:hover{filter:brightness(1.08)}button:disabled{opacity:.45;cursor:not-allowed}.secondary{background:#29333D;color:var(--text);border:1px solid #3B4853}.outline{background:transparent;color:var(--text);border:1px solid var(--line)}
.hidden{display:none!important}.notice{border-left:3px solid var(--accent);padding:10px 12px;background:#2a281e;color:#f5e9bb;border-radius:0 9px 9px 0;font-size:.9rem}
.type-guide{margin:12px 0;border:1px solid var(--line);border-radius:12px;background:#202830}.type-guide summary{cursor:pointer;padding:11px 13px;font-weight:800;color:#dce5f8}.type-guide[open] summary{border-bottom:1px solid var(--line)}.type-guide-body{padding:13px;display:grid;gap:10px}.type-guide-body label{display:inline}.type-guide-body select{max-width:220px;background:#29333D;color:var(--text);border:1px solid #3B4853;border-radius:8px;padding:8px;font:inherit}.type-matchup{font-size:.84rem}.match-groups{display:grid;gap:7px}.match-groups>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px}.match-groups>div>b{min-width:145px;color:var(--text)}.match-chip{display:inline-block;margin:2px 3px 2px 0;padding:3px 7px;border-radius:7px;background:#29333D;color:var(--text);font-size:.76rem;font-weight:700}.match-chip.weak{background:#573238;color:#ffd6da}.match-chip.resist{background:#244a40;color:#c8ffe6}.match-chip.immune{background:#3a4160;color:#dce4ff}.team-matchups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.team-matchup{min-width:0;padding:9px;background:#202830;border:1px solid #3B4853;border-radius:9px;font-size:.8rem}.team-matchup>b{display:block;margin-bottom:5px;font-size:.9rem}.team-matchup>div{margin-top:4px}.match-label{display:inline-block;min-width:68px;color:var(--muted);font-size:.73rem}
.counter-draft{margin:16px 0;padding:15px;border:1px solid #78682b;border-radius:14px;background:linear-gradient(160deg,#292719,#202830)}.counter-draft>h3{font-size:1.15rem}.counter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.counter-card{min-width:0;padding:11px;border:1px solid var(--line);border-radius:11px;background:#29333D}.counter-heading{display:flex;align-items:center;gap:9px}.counter-heading .sprite{width:52px;height:52px;flex:0 0 52px}.counter-heading .types{margin-top:3px}.counter-number{display:grid;place-items:center;align-self:flex-start;flex:0 0 23px;height:23px;border-radius:50%;background:#78682b;color:#fff0a3;font-weight:900;font-size:.78rem}.counter-reason{margin:9px 0;color:#dce5f8;font-size:.82rem;line-height:1.4}
.teamcard{background:#202830;border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;align-items:center;gap:9px;min-height:76px}.teamcard .sprite{width:48px;height:48px;flex-basis:48px}.teamcard .monname{font-size:.92rem}.teamcard .meta{font-size:.72rem}
.battlefield{display:grid;grid-template-columns:1fr 1fr;gap:12px}.combatant{border-radius:14px;background:#202830;border:1px solid var(--line);padding:14px}.hpbar{height:10px;border-radius:99px;background:#343d51;overflow:hidden;margin:8px 0}.hpbar span{display:block;height:100%;background:var(--green);width:100%}.battlelog{max-height:290px;overflow:auto;background:#101522;border:1px solid var(--line);border-radius:12px;padding:12px;font-size:.9rem}.battlelog p{margin:0 0 7px}.win{color:var(--green);font-weight:900}.lose{color:var(--red);font-weight:900}
footer{color:var(--muted);font-size:.8rem;margin-top:24px}
@media(max-width:720px){.grid{grid-template-columns:1fr}.teamgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.battlefield{grid-template-columns:1fr}.panel{padding:14px}.sprite{width:56px;height:56px;flex-basis:56px}.team-matchups{grid-template-columns:1fr}.counter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.match-groups>div>b{min-width:120px}}
@media(max-width:480px){.counter-grid{grid-template-columns:1fr}}


/* Keep controls and cards comfortable on phone-sized screens. */
@media(max-width:600px){
 main{padding:18px 12px 40px}
 .hero{align-items:flex-start;gap:10px;margin-bottom:14px}
 .hero>div{min-width:0}
 .hero .pill{white-space:nowrap}
 .panel{padding:13px;margin:11px 0;border-radius:15px}
 .row.space{align-items:flex-start}
 .row.space>div{min-width:0}
 .row.space>button{flex:0 0 auto}
 h2{font-size:1.12rem}
 .sub,.muted{overflow-wrap:anywhere}
 .card{padding:10px;gap:8px}
 .monhead{gap:8px}
 .mon-card .sprite{width:52px;height:52px;flex-basis:52px}
 .monname{font-size:1rem;overflow-wrap:anywhere}
 .move-list{padding:9px}
 .move-list ul{gap:8px}
 .move-list li{font-size:.8rem}
 .move-kind{font-size:.62rem}
 .card button{width:100%;min-height:44px}
 #newRun{min-height:44px}
 #battleStartWrap{align-items:stretch}
 #battleStart{width:100%;min-height:46px}
 .type-guide-body{padding:10px;gap:9px}
 .type-guide-body select{width:100%;max-width:none;min-height:44px}
 .match-groups>div>b{min-width:0;width:100%}
 .teamcard{min-height:68px;padding:8px;gap:7px}
 .teamcard .sprite{width:42px;height:42px;flex-basis:42px}
 .teamcard .monname{font-size:.84rem}
 .teamcard .meta{font-size:.68rem}
 .combatant{padding:11px}
 .battlelog{max-height:40vh;padding:10px;font-size:.84rem}
 footer{font-size:.76rem;line-height:1.5;overflow-wrap:anywhere}
}

/* Always-visible type chart, placed beside the choices that use it. */
.type-chart-panel{margin:14px 0;padding:13px;border:1px solid #78682b;border-radius:13px;background:linear-gradient(160deg,#292719,#202830)}
.type-chart-panel>.row{align-items:flex-start;margin-bottom:10px}
.type-chart-panel>.row .pill{white-space:normal;text-align:center;font-size:.72rem;padding:5px 9px}
.type-chart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.type-chart-card{min-width:0;padding:9px;background:#202830;border:1px solid #3B4853;border-radius:10px}
.type-chart-card h4{margin:0 0 5px;color:#ffe28a;font-size:.88rem}
.type-chart-card>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 4px;margin-top:4px;font-size:.7rem;line-height:1.3}
.type-chart-card>div>b{flex:0 0 83px;color:#dce5f8;font-size:.66rem}
.type-chart-card .match-chip{margin:1px;padding:2px 5px;font-size:.64rem}
@media(max-width:720px){.type-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.type-chart-panel{padding:10px}.type-chart-card{padding:7px}.type-chart-card>div>b{flex-basis:72px}}
@media(max-width:380px){.type-chart-grid{grid-template-columns:1fr}}
.type-chart-details{padding:0;overflow:hidden}
.type-chart-details>summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;background:linear-gradient(100deg,#39321d,#20283a);border-radius:12px;outline-offset:-3px}
.type-chart-details>summary::-webkit-details-marker{display:none}
.type-chart-details>summary>span:first-child{display:grid;gap:2px;min-width:0}
.type-chart-details>summary b{color:#ffe28a;font-size:.98rem}
.type-chart-details>summary small{color:#d8deea;font-size:.76rem;line-height:1.3}
.type-chart-details>summary>.pill{margin-left:auto;white-space:nowrap}
.type-chart-details>summary::after{content:"＋";flex:0 0 auto;color:#ffe28a;font-weight:900;font-size:1.1rem}
.type-chart-details[open]>summary{border-radius:12px 12px 0 0;border-bottom:1px solid #78682b}
.type-chart-details[open]>summary::after{content:"−"}
.type-chart-body{padding:12px}
.type-chart-legend{margin:0 0 9px;color:var(--muted);font-size:.78rem}
@media(max-width:480px){.type-chart-details>summary{padding:10px;gap:7px}.type-chart-details>summary b{font-size:.88rem}.type-chart-details>summary small{font-size:.68rem}.type-chart-details>summary>.pill{padding:4px 7px;font-size:.65rem}.type-chart-body{padding:9px}}
@media(max-width:360px){
 main{padding-right:9px;padding-left:9px}
 .teamgrid{grid-template-columns:1fr}
 .hero{display:block}
 .hero .pill{display:inline-block;margin-top:10px}
 .row.space{flex-wrap:wrap}
 .row.space>button{width:100%}
 .move-list ul{grid-template-columns:1fr}
}
@media(max-width:600px){
 /* Let players swipe between full-width offer cards instead of stacking all three. */
 #offers{display:flex;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;padding-bottom:7px}
 #offers>.card{flex:0 0 min(86%,340px);scroll-snap-align:start}
 /* Use three compact columns for the six team slots to shorten the page. */
 .teamgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .teamcard{min-height:84px;flex-direction:column;justify-content:center;text-align:center;gap:4px}
 .teamcard .sprite{width:38px;height:38px;flex-basis:38px}
 .teamcard .monname{max-width:100%;overflow-wrap:anywhere}
 .teamcard .meta{max-width:100%;overflow-wrap:anywhere}
}
@media(max-width:360px){
 .teamgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
 /* The opponent roster stays scannable; expand a card only when its moves are needed. */
 #opponentTeam{grid-template-columns:1fr}
 #opponentTeam>.card{padding:9px;gap:6px}
 #opponentTeam .monhead{gap:7px}
 #opponentTeam .mon-card .sprite{width:46px;height:46px;flex-basis:46px}
}

.link-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer;border:0;border-radius:10px;padding:11px 13px;font-weight:800;background:var(--accent);color:#24200d;font-size:.94rem}
.link-button:hover{filter:brightness(1.08)}
.gym-challenge-page .sprite img{image-rendering:auto}
.gym-challenge-page #typeChoices button{flex:1 1 110px;min-height:44px}
.gym-challenge-page #campaignOffers .card{min-height:170px}
.gym-challenge-page #campaignOffers .card button{margin-top:auto;min-height:44px}
.gym-challenge-page #startingTeam{grid-template-columns:repeat(3,minmax(0,1fr))}
.gym-challenge-page .gym-leader-team{grid-template-columns:repeat(3,minmax(0,1fr))}
.gym-challenge-page .gym-leader-team .teamcard{min-width:0}
.gym-challenge-page .teamcard-detail{align-items:stretch;flex-direction:column;min-width:0}
.gym-challenge-page .teamcard-header{display:flex;align-items:center;gap:9px;min-width:0}
.gym-challenge-page .teamcard-summary{min-width:0}
.gym-challenge-page .teamcard-detail .move-list{width:100%}
.gym-challenge-page .teamcard-detail .move-list ul{grid-template-columns:1fr 1fr}
.gym-challenge-page .party-order-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto;padding-top:10px}
.gym-challenge-page .party-order-controls button{min-height:40px;padding:8px;font-size:.78rem}
.gym-challenge-page .party-order-controls button:disabled{opacity:.4;cursor:not-allowed}
.gym-challenge-page #partyOrderHint{margin-top:5px}
.gym-challenge-page #rewardOffers .card button{margin-top:auto;min-height:44px}
.gym-challenge-page #rewardChoices{margin:10px 0}
.gym-challenge-page .reward-package{display:flex;flex:1 1 220px;flex-direction:column;align-items:flex-start;gap:5px;min-height:88px;text-align:left;background:#29333D;color:var(--text);border:1px solid #3B4853}
.gym-challenge-page .reward-package span{font-size:.78rem;font-weight:500;color:var(--muted)}
.gym-challenge-page .reward-package:disabled{opacity:.48}
.gym-challenge-page .gym-reserve{grid-template-columns:repeat(3,minmax(0,1fr))}
.gym-challenge-page .reserve-card{align-items:flex-start;flex-direction:column;min-width:0}
.gym-challenge-page .reserve-card button{width:100%;font-size:.78rem}
.gym-challenge-page .evolve-choice{display:flex;align-items:center;gap:8px}
.gym-challenge-page .evolve-choice .sprite{width:38px;height:38px;flex-basis:38px}
.gym-challenge-page .evolve-choice small{color:var(--muted)}
.gym-challenge-page .gym-battlelog{max-height:55vh}
@media(max-width:600px){
 .gym-challenge-page .hero>.link-button{width:100%}
 .gym-challenge-page #startingTeam{grid-template-columns:1fr}
 .gym-challenge-page .gym-leader-team{grid-template-columns:1fr}
 .gym-challenge-page .teamcard-detail .move-list ul{grid-template-columns:1fr 1fr}
 .gym-challenge-page .gym-reserve{grid-template-columns:1fr}
 .gym-challenge-page #campaignOffers .card{min-height:0}
 .gym-challenge-page #rewardOffers .card{min-height:0}
}
@media(max-width:600px){
 #playerTeam{grid-template-columns:1fr}
}

/* Requested layout and cosmetic shiny treatment. */
.sprite{position:relative}
.sprite img.shiny-sprite{filter:hue-rotate(105deg) saturate(1.35) brightness(1.05)}
.shiny-mark{position:absolute;right:2px;top:0;color:#ffe47d;text-shadow:0 1px 4px #141A1F;font-size:1rem;z-index:1}
.shiny-label{display:inline-block;margin-top:3px;color:#ffe47d;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.gym-challenge-page #startingTeam,.gym-challenge-page .gym-leader-team{grid-template-columns:repeat(3,minmax(0,1fr))}
.gym-challenge-page .reserve-summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none}
.gym-challenge-page .reserve-summary::-webkit-details-marker{display:none}
.gym-challenge-page .reserve-summary:after{content:"▾";color:var(--muted);margin-left:auto}
.gym-challenge-page details[open]>.reserve-summary:after{content:"▴"}
.gym-challenge-page .reserve-summary b{font-size:1.1rem}
.challenge-reveal{max-width:420px;width:calc(100% - 32px);padding:24px;border:1px solid #78682b;border-radius:18px;background:#202830;color:var(--text);box-shadow:0 24px 80px #0009}
.challenge-reveal::backdrop{background:#080b12cc}
.challenge-reveal .eyebrow{margin:0;color:#ffe28a;font-size:.75rem;font-weight:900;letter-spacing:.12em}
.challenge-reveal h2{margin-top:8px}
@media(max-width:600px){
 .gym-challenge-page #startingTeam,.gym-challenge-page .gym-leader-team,.gym-challenge-page .gym-reserve,#playerTeam{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Keep Gym Challenge's 2×3 party and leader cards compact on phones. */
@media(max-width:600px){
 .gym-challenge-page #startingTeam,.gym-challenge-page .gym-leader-team{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 .gym-challenge-page .teamcard-detail{align-items:stretch;justify-content:flex-start;gap:6px;min-height:0;padding:7px}
 .gym-challenge-page .teamcard-header{gap:5px;align-items:center}
 .gym-challenge-page .teamcard-header .counter-number{flex-basis:18px;height:18px;font-size:.62rem}
 .gym-challenge-page .teamcard-header .sprite{width:32px;height:32px;flex-basis:32px}
 .gym-challenge-page .teamcard-summary .monname{font-size:.74rem;line-height:1.15}
 .gym-challenge-page .teamcard-summary .meta{font-size:.62rem;line-height:1.15}
 .gym-challenge-page .teamcard-summary .types{gap:3px;margin-top:2px}
 .gym-challenge-page .teamcard-summary .type{padding:2px 4px;font-size:.55rem}
 .gym-challenge-page .teamcard-detail .move-list{padding:6px}
 .gym-challenge-page .teamcard-detail .move-heading{font-size:.65rem;margin-bottom:4px}
 .gym-challenge-page .teamcard-detail .move-list ul{grid-template-columns:1fr;gap:3px}
 .gym-challenge-page .teamcard-detail .move-list li{gap:4px;font-size:.62rem;line-height:1.15;white-space:nowrap}
 .gym-challenge-page .teamcard-detail .move-list li span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .gym-challenge-page .teamcard-detail .move-kind{font-size:.52rem}
 .gym-challenge-page .party-order-controls{grid-template-columns:1fr 1fr;gap:5px;padding-top:2px}
 .gym-challenge-page .party-order-controls button{min-height:32px;padding:4px;font-size:0}
 .gym-challenge-page .party-order-controls button[data-party-move$=":up"]:after{content:"↑";font-size:1rem}
 .gym-challenge-page .party-order-controls button[data-party-move$=":down"]:after{content:"↓";font-size:1rem}
}

/* Draft Arena: keep rosters in a compact 2×3 layout on phones. */
@media(max-width:600px){
 #opponentTeam,#playerTeam{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 #opponentTeam>.card,#playerTeam>.card{min-width:0;padding:7px;gap:5px;border-radius:10px}
 #playerTeam>.teamcard{min-height:58px;padding:6px;gap:5px}
 #playerTeam>.teamcard .sprite{width:34px;height:34px;flex-basis:34px}
 #playerTeam>.teamcard .monname{font-size:.76rem}
 #playerTeam>.teamcard .meta{font-size:.6rem}
 #opponentTeam .monhead,#playerTeam .monhead{gap:5px}
 #opponentTeam .mon-card .sprite,#playerTeam .mon-card .sprite{width:36px;height:36px;flex-basis:36px}
 #opponentTeam .monname,#playerTeam .monname{font-size:.8rem;line-height:1.15}
 #opponentTeam .type,#playerTeam .type{padding:2px 4px;font-size:.56rem}
 #playerTeam .move-list{padding:6px}
 #playerTeam .move-heading{font-size:.64rem;margin-bottom:4px}
 #playerTeam .move-list ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 3px}
 #playerTeam .move-list li{gap:3px;font-size:.63rem;line-height:1.15;white-space:nowrap}
 #playerTeam .move-kind{font-size:.48rem}
 #playerTeam .move-list li span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 #counterDraft .counter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 #counterDraft .counter-card{min-width:0;padding:7px}
 #counterDraft .counter-heading{gap:5px}
 #counterDraft .counter-heading .sprite{width:34px;height:34px;flex-basis:34px}
 #counterDraft .counter-heading b{font-size:.76rem;overflow-wrap:anywhere}
 #counterDraft .counter-heading .type{padding:2px 4px;font-size:.54rem}
 #counterDraft .counter-reason{margin:5px 0;font-size:.68rem;line-height:1.25;overflow-wrap:anywhere}
}

/* Trial Poké Ball palette; remove this block to restore the previous site colors. */
:root{--accent:#e33d4b;--blue:#f4f4f4;--green:#70d6a4;--red:#ff8181}
body{background:radial-gradient(ellipse at 8% 0,rgba(116,151,162,.13),transparent 38%),linear-gradient(180deg,#222B31 0%,#141A1F 68%)}
.panel{background:linear-gradient(155deg,rgba(42,51,59,.98),rgba(32,40,48,.98));border-color:#3B4853}
.pill{border-color:#f4f4f4;color:#fff;background:#17191f}
button:not(.secondary):not(.outline),.link-button{background:var(--accent);color:#fff;box-shadow:0 3px 0 #8d202c}
button:not(.secondary):not(.outline):hover,.link-button:hover{filter:brightness(1.08)}
.secondary,.gym-challenge-page .reward-package{background:#17191f;color:#f4f4f4;border-color:#535862}
.outline{color:#f4f4f4;border-color:#f4f4f4}
.counter-draft{border-color:#3B4853;background:linear-gradient(145deg,rgba(43,51,55,.97),rgba(32,40,48,.98))}
.counter-number{background:#a92e3a;color:#fff}
.notice{border-left-color:var(--accent);background:#263039;color:#fff}
.type-chart-panel{border-color:#3B4853;background:linear-gradient(145deg,#29333D,#202830)}
.type-chart-card h4,.type-chart-details>summary b{color:#fff}
.type-chart-details>summary{background:linear-gradient(100deg,#344149,#29333D)}
.type-chart-details>summary::after{color:#fff}
.type-chart-details[open]>summary{border-bottom-color:#3B4853}
.challenge-reveal{border-color:#3B4853;background:#202830}
.challenge-reveal .eyebrow{color:#fff}

/* Poké Ball-inspired finish for interactive buttons. */
button:not(.reward-package),.link-button{border:2px solid #101116;background-image:radial-gradient(circle at 17px 50%,#fff 0 3px,#101116 3.5px 6px,transparent 6.5px),linear-gradient(180deg,#f0525c 0 43%,#101116 43% 57%,#f3f3f3 57% 100%);background-color:#e33d4b;color:#fff;text-shadow:0 1px 2px #101116,0 0 4px #101116;box-shadow:inset 0 1px 0 #ffffff80,0 3px 0 #08090c}
button.secondary:not(.reward-package){background-image:radial-gradient(circle at 17px 50%,#fff 0 3px,#101116 3.5px 6px,transparent 6.5px),linear-gradient(180deg,#f0525c 0 43%,#101116 43% 57%,#f3f3f3 57% 100%);background-color:#e33d4b;color:#fff;text-shadow:0 1px 2px #101116,0 0 4px #101116}
button.outline:not(.reward-package){background-image:radial-gradient(circle at 17px 50%,#e33d4b 0 3px,#101116 3.5px 6px,transparent 6.5px),linear-gradient(180deg,#a62d38 0 43%,#101116 43% 57%,#d9d9d9 57% 100%);background-color:#a62d38}
button:not(.reward-package):active,.link-button:active{transform:translateY(2px);box-shadow:inset 0 1px 0 #ffffff80,0 1px 0 #08090c}
button:focus-visible,.link-button:focus-visible{outline:3px solid #fff;outline-offset:3px}
button,a.link-button{-webkit-text-stroke:.85px #050608;text-shadow:-1.15px -1.15px 0 #050608,0 -1.15px 0 #050608,1.15px -1.15px 0 #050608,1.15px 0 0 #050608,1.15px 1.15px 0 #050608,0 1.15px 0 #050608,-1.15px 1.15px 0 #050608,-1.15px 0 0 #050608;paint-order:stroke fill}
#newRun,#battleStart{background-image:radial-gradient(circle at 17px 50%,#fff 0 3px,#101116 3.5px 6px,transparent 6.5px),linear-gradient(180deg,#f0525c 0 43%,#101116 43% 57%,#f3f3f3 57% 100%);background-color:#e33d4b;color:#fff}
#battleStart:disabled{opacity:.76;filter:saturate(.9)}
button,a.link-button,button.secondary,button.outline,.gym-challenge-page button.reward-package{border:2px solid #101116;background-image:radial-gradient(circle at 17px 50%,#fff 0 3px,#101116 3.5px 6px,transparent 6.5px),linear-gradient(180deg,#f0525c 0 43%,#101116 43% 57%,#f3f3f3 57% 100%);background-color:#e33d4b;color:#fff;text-shadow:-1.15px -1.15px 0 #050608,0 -1.15px 0 #050608,1.15px -1.15px 0 #050608,1.15px 0 0 #050608,1.15px 1.15px 0 #050608,0 1.15px 0 #050608,-1.15px 1.15px 0 #050608,-1.15px 0 0 #050608;-webkit-text-stroke:.85px #050608;paint-order:stroke fill;box-shadow:inset 0 1px 0 #ffffff80,0 3px 0 #08090c}
button:disabled{opacity:.76;filter:saturate(.9)}
button:active,a.link-button:active{transform:translateY(2px);box-shadow:inset 0 1px 0 #ffffff80,0 1px 0 #08090c}
#offers button[data-pick],#campaignOffers button[data-pick],#rewardOffers button[data-pick]{background-image:radial-gradient(circle at 17px 50%,#fff 0 3px,#101116 3.5px 6px,transparent 6.5px),linear-gradient(180deg,#f0525c 0 43%,#101116 43% 57%,#f3f3f3 57% 100%)!important;background-color:#e33d4b!important;border:2px solid #101116!important;color:#fff!important}

/* Keep the Poké Ball stripe simple so it renders consistently on every button. */
button,a.link-button,button.secondary,button.outline,.gym-challenge-page button.reward-package,
#offers button[data-pick],#campaignOffers button[data-pick],#rewardOffers button[data-pick]{
  background:linear-gradient(to bottom,#f0525c 0%,#f0525c 43%,#101116 43%,#101116 57%,#f3f3f3 57%,#f3f3f3 100%)!important;
}

/* Outline button labels for contrast against the white Poké Ball stripe, including on mobile. */
button,a.link-button,button *,a.link-button *{
  -webkit-text-stroke:1.15px #050608!important;
  text-shadow:-1.25px -1.25px 0 #050608,0 -1.25px 0 #050608,1.25px -1.25px 0 #050608,1.25px 0 0 #050608,1.25px 1.25px 0 #050608,0 1.25px 0 #050608,-1.25px 1.25px 0 #050608,-1.25px 0 0 #050608!important;
  paint-order:stroke fill;
}

/* Evolution and rarity styling is reserved for Pokémon selection buttons only. */
#offers button.pokemon-pick-button[data-pokeball="stage-1"],#campaignOffers button.pokemon-pick-button[data-pokeball="stage-1"],#rewardOffers button.pokemon-pick-button[data-pokeball="stage-1"]{
  background:linear-gradient(to bottom,#f0525c 0%,#f0525c 43%,#101116 43%,#101116 57%,#f3f3f3 57%,#f3f3f3 100%)!important;
}
#offers button.pokemon-pick-button[data-pokeball="stage-2"],#campaignOffers button.pokemon-pick-button[data-pokeball="stage-2"],#rewardOffers button.pokemon-pick-button[data-pokeball="stage-2"]{
  background:linear-gradient(to bottom,#2386e8 0%,#2386e8 43%,#101116 43%,#101116 57%,#f3f3f3 57%,#f3f3f3 100%)!important;
}
#offers button.pokemon-pick-button[data-pokeball="stage-3"],#campaignOffers button.pokemon-pick-button[data-pokeball="stage-3"],#rewardOffers button.pokemon-pick-button[data-pokeball="stage-3"]{
  background:linear-gradient(to bottom,#f3c928 0%,#f3c928 43%,#101116 43%,#101116 57%,#f3f3f3 57%,#f3f3f3 100%)!important;
}
#offers button.pokemon-pick-button[data-pokeball="master"],#campaignOffers button.pokemon-pick-button[data-pokeball="master"],#rewardOffers button.pokemon-pick-button[data-pokeball="master"]{
  background:linear-gradient(to bottom,#a64be0 0%,#a64be0 43%,#101116 43%,#101116 57%,#f3f3f3 57%,#f3f3f3 100%)!important;
}

/* Keep reward packages in Poké Ball colors and center their larger copy. */
.gym-challenge-page button.reward-package{
  text-align:center;
  align-items:center;
  color:#fff!important;
}
.gym-challenge-page button.reward-package span{
  color:#f4f4f4;
  font-size:.98rem;
  font-weight:600;
  line-height:1.2;
  text-align:center;
}
.gym-challenge-page button.reward-package>b{
  font-size:1.08rem;
  -webkit-text-stroke:1.45px #050608;
  text-shadow:-1.5px -1.5px 0 #050608,0 -1.5px 0 #050608,1.5px -1.5px 0 #050608,1.5px 0 0 #050608,1.5px 1.5px 0 #050608,0 1.5px 0 #050608,-1.5px 1.5px 0 #050608,-1.5px 0 0 #050608;
  paint-order:stroke fill;
}
.gym-challenge-page button.reward-package{
  background:linear-gradient(to bottom,#f0525c 0%,#f0525c 46.5%,#101116 46.5%,#101116 53.5%,#f3f3f3 53.5%,#f3f3f3 100%)!important;
}
.gym-challenge-page button.reward-package:disabled{opacity:.92;filter:grayscale(1) brightness(.72)}

/* Keep button labels centered throughout both games. */
button,a.link-button{text-align:center}

.battle-pokemon{color:#75ddf5;font-weight:900;text-shadow:none}.battle-move{color:#ffd166;font-weight:900;text-shadow:none}
.battlelog{background:#050505}
.reroll-control{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:12px;text-align:center}
#draftReroll{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:230px;min-height:48px;padding:8px 16px;border:2px solid #080b0d;border-radius:12px;background:linear-gradient(180deg,#fff,#e4e9ed)!important;color:#111820!important;text-shadow:none!important;-webkit-text-stroke:0!important;paint-order:normal;box-shadow:inset 0 1px 0 #fff,0 3px 0 #08090c}
#draftReroll:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.04)}
#draftReroll:disabled{background:linear-gradient(180deg,#c8cdd1,#969da3)!important;color:#343a3f!important;text-shadow:none!important;-webkit-text-stroke:0!important;opacity:.8}
#draftReroll *{-webkit-text-stroke:0!important;text-shadow:none!important;paint-order:normal}
.dice-face{display:block;flex:0 0 25px;width:25px;height:25px;border:2px solid #111820;border-radius:6px;background:radial-gradient(circle at 25% 25%,#e33d4b 0 2px,transparent 2.6px),radial-gradient(circle at 75% 25%,#e33d4b 0 2px,transparent 2.6px),radial-gradient(circle at 50% 50%,#e33d4b 0 2px,transparent 2.6px),radial-gradient(circle at 25% 75%,#e33d4b 0 2px,transparent 2.6px),radial-gradient(circle at 75% 75%,#e33d4b 0 2px,transparent 2.6px),linear-gradient(145deg,#fff,#e5e9ed);box-shadow:inset 0 1px 1px #fff,1px 2px 0 #111820}
@media(max-width:360px){#draftReroll{min-width:0;max-width:100%;padding-inline:12px;font-size:.88rem}#draftReroll>span:last-child{min-width:0;white-space:normal}}
.new-run-action{display:flex;justify-content:center;margin-top:14px}
.type-chart-panel{border-color:#8a7331;background:linear-gradient(145deg,#302b1b,#202830)}
.type-chart-details>summary{background:linear-gradient(100deg,#40371e,#29333D)}
.type-chart-details>summary b,.type-chart-details>summary::after{color:#ffe28a}
.type-chart-details[open]>summary{border-bottom-color:#8a7331}
#battleStartWrap{justify-content:center}
.gym-challenge-page .run-controls,.gym-challenge-page #typeChoices,.gym-challenge-page #reserveActions,.gym-challenge-page #rewardChoices{justify-content:center}
.gym-challenge-page #gymPanel>#fightGym,.gym-challenge-page #rewardPanel>#continueGym,.gym-challenge-page #endPanel>button,.gym-challenge-page .challenge-reveal>button{display:block;margin:12px auto 0}
@media(max-width:600px){#battleStartWrap{align-items:center;flex-direction:column}#battleStart{width:auto;min-width:220px;max-width:100%}}

