/* Pokémon field kit: bold shells, inset displays and item-art navigation. */
body{background-image:radial-gradient(circle at 12px 12px,#7898b512 1px,transparent 1px);background-size:24px 24px}
.app-topbar{height:auto;min-height:76px;border-bottom:4px solid #24364c;box-shadow:0 4px 0 #24364c16;background:linear-gradient(110deg,#cf354a 0 235px,var(--app-card) 236px);gap:18px}
.app-brand{color:#fff}.app-brand span{color:#ffdf79}.app-brand strong{text-shadow:1px 2px #692537}
.sprite-frame{position:relative;display:inline-block;width:var(--sprite-size,64px);height:var(--sprite-size,64px);flex:none;vertical-align:middle;overflow:hidden;isolation:isolate}
.sprite-frame>img.pokemon-sprite{position:absolute;max-width:none!important;max-height:none!important;object-fit:fill;image-rendering:pixelated;flex:none;margin:0;padding:0}
.brand-sprite{--sprite-size:38px}.home-pokemon>.sprite-frame{--sprite-size:132px!important;margin:0 auto}
.battle-unit>.sprite-frame{filter:drop-shadow(0 3px 1px #17203366)}.battle-unit.selected>.sprite-frame{filter:drop-shadow(0 0 3px white) drop-shadow(0 0 2px #2563eb)}
.button{border-width:2px;border-radius:10px;box-shadow:0 3px 0 #24364c16;transition:background .15s,transform .15s,box-shadow .15s}
.button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 0 #24364c20}.button:active:not(:disabled){transform:translateY(2px);box-shadow:none}
.app-card{border:2px solid var(--app-border);box-shadow:0 4px 0 #24364c0b}
.main-menu{max-width:1120px}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.app-navigation:has(#backMenu[hidden]):has(#appStatus[hidden]){display:none}
.chat-status{margin:6px 0;font-size:.82rem;color:var(--app-muted)}
.chat-status.error{color:var(--app-danger,#b52a37)}
body[data-section=story],body[data-section=pokemon],body[data-section=pokedex]{--section-accent:#cf354a}
body[data-section=events]{--section-accent:#a86cbc}body[data-section=multiplayer]{--section-accent:#448bc7}
body[data-section=gts]{--section-accent:#39a39c}body[data-section=highscores]{--section-accent:#d3a230}
body[data-section=shop]{--section-accent:#c27d36}body[data-section=mail]{--section-accent:#5794b8}
body[data-section=bag]{--section-accent:#cc8141}body[data-section=breed]{--section-accent:#c0759b}body[data-section=options]{--section-accent:#718392}
body[data-section]:not([data-section=""]){--app-primary:color-mix(in srgb,var(--section-accent) 72%,#142438);--accent:var(--app-primary)}
body[data-section]:not([data-section=""]) .screen-title{padding:18px 22px;border-left:7px solid var(--section-accent);border-radius:14px;background:linear-gradient(115deg,var(--app-card),color-mix(in srgb,var(--section-accent) 14%,var(--app-card)));box-shadow:0 4px 0 #24364c16}
body[data-section]:not([data-section=""]) .app-card{border-top:4px solid color-mix(in srgb,var(--section-accent) 60%,var(--app-border))}
body[data-section]:not([data-section=""]) .button{border-color:color-mix(in srgb,var(--section-accent) 60%,var(--app-border));background:linear-gradient(130deg,var(--app-card),color-mix(in srgb,var(--section-accent) 9%,var(--app-card)));color:var(--app-ink);min-height:40px;font-weight:700;box-shadow:0 3px 0 color-mix(in srgb,var(--section-accent) 30%,transparent)}
body[data-section]:not([data-section=""]) .button:is(.primary,.active,[aria-pressed=true]){background:var(--app-primary);color:white;border-color:var(--app-primary)}
body[data-section]:not([data-section=""]) .button.danger{background:#b52a37;color:white;border-color:#8e2630}
.language-flag,.chat-language-tab{position:relative;box-sizing:border-box;display:inline-grid!important;place-items:center;width:40px;height:42px;min-height:42px!important;padding:0!important;margin:0;border:0!important;border-radius:7px;background:transparent!important;box-shadow:none!important;transform:none!important;transition:background .15s;flex:0 0 auto;line-height:1}
.language-flag img,.chat-language-tab img{display:block;width:30px!important;height:30px!important;object-fit:contain;border:0;border-radius:0;box-shadow:none;filter:none;transform:none}
.language-flag:after,.chat-language-tab:after{content:'';position:absolute;bottom:1px;left:14px;width:12px;height:3px;border-radius:2px;background:transparent}
.language-flag[aria-pressed=true]:after,.chat-language-tab[aria-selected=true]:after{background:var(--app-primary)}
.language-flag:hover,.chat-language-tab:hover{background:color-mix(in srgb,var(--app-primary) 9%,transparent)!important;transform:none!important;box-shadow:none!important}
.chat-language-tabs{gap:3px;padding:0 0 4px;align-items:center}
.button:not(.chat-language-tab){background:linear-gradient(150deg,color-mix(in srgb,var(--app-primary) 18%,var(--app-card)),color-mix(in srgb,var(--app-primary) 32%,var(--app-card)));border:2px solid color-mix(in srgb,var(--app-primary) 70%,#26374a);color:var(--app-ink);font-weight:750;box-shadow:inset 0 2px #ffffff45,0 4px 0 #26374a35;border-radius:12px}
body[data-section]:not([data-section=""]) .button:not(.chat-language-tab){background:linear-gradient(150deg,color-mix(in srgb,var(--section-accent) 16%,var(--app-card)),color-mix(in srgb,var(--section-accent) 30%,var(--app-card)));box-shadow:inset 0 2px #ffffff45,0 4px 0 #26374a35}
.button.primary:not(.chat-language-tab),body[data-section]:not([data-section=""]) .button:is(.primary,.active,[aria-pressed=true]):not(.chat-language-tab){background:linear-gradient(155deg,color-mix(in srgb,var(--app-primary) 85%,white),var(--app-primary));color:#fff;text-shadow:0 1px #0003}
.button.danger:not(.chat-language-tab){background:linear-gradient(155deg,#d64b55,#a32132)!important;color:white!important}
.button:not(.chat-language-tab):active:not(:disabled){transform:translateY(3px);box-shadow:inset 0 2px #0002,0 1px 0 #26374a35}
.mart-hero{position:relative;display:flex;align-items:center;justify-content:space-between;padding:38px 30px 22px!important;overflow:hidden;border:3px solid #3d4d60!important;background:linear-gradient(120deg,var(--app-card),color-mix(in srgb,#d99138 22%,var(--app-card)));border-radius:24px}
.mart-hero:before{content:'';position:absolute;inset:0 0 auto;height:17px;background:repeating-linear-gradient(90deg,#d65151 0 28px,#fff4d8 28px 56px);border-bottom:3px solid #35465b}
.mart-hero h1{font-size:2.3rem;margin:5px 0;color:var(--app-ink)}.mart-hero small{text-transform:uppercase;letter-spacing:.13em;font-weight:800;color:var(--app-primary)}.mart-wallet{display:flex;align-items:center;gap:8px;width:max-content;max-width:100%;padding:8px 14px;background:#253b4e;color:#ffe4a0;border-radius:10px;font-size:1.1rem}
.mart-shelves{display:flex;gap:8px;overflow-x:auto;padding:8px 2px 14px;margin-bottom:10px;scrollbar-width:thin}.mart-category{flex:0 0 auto;display:flex;align-items:center;gap:8px;min-height:58px!important}.mart-category .item-sprite{width:28px;height:28px}
.mart-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:15px}.mart-featured{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:14px 0 25px}.mart-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px;padding:18px!important;margin:0;transition:transform .15s,box-shadow .15s}.mart-item:hover{transform:translateY(-3px);box-shadow:0 8px 0 #26374a18}.mart-item h3{font-size:1rem;margin:0;min-height:2.5em;display:flex;align-items:center}.mart-item>.button{width:100%;margin-top:auto}.mart-item-art{width:94px;height:94px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,#ffefaa77,transparent 70%)}.mart-item-art .item-sprite{width:58px;height:58px;filter:drop-shadow(0 5px 0 #25374a20)}.mart-price{font-size:1.05rem;color:var(--app-primary)}.mart-item.rare-item{background:linear-gradient(150deg,var(--app-card),color-mix(in srgb,#eeb950 20%,var(--app-card)));border:2px solid #b68b39!important}.mart-item.featured-item:before{content:'✦';color:#ac7727;font-size:1.2rem}.mart-pages{justify-content:center;margin:22px 0}
.mart-detail{text-align:center}.mart-detail-art{display:grid;place-items:center;background:radial-gradient(circle,#f5cf7944,transparent 65%);height:120px}.mart-detail-art .item-sprite{width:80px;height:80px}.mart-total{display:block;font-size:1.3rem;margin:18px 0}.mart-detail .action-row{justify-content:center}.mart-detail .action-row>label{max-width:140px}.mart-detail>.button{width:100%}
@media(max-width:650px){.mart-hero{padding:32px 18px 18px!important}.mart-hero h1{font-size:1.8rem}.mart-hero>.sprite-frame{--sprite-size:86px!important}.mart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mart-featured{gap:8px}.mart-featured .mart-item{padding:10px 5px!important}.mart-featured .mart-item-art{width:62px;height:62px}.mart-featured .item-sprite{width:44px;height:44px}.mart-price{font-size:.9rem}.mart-featured .mart-item>.button{font-size:.75rem;padding:7px 3px}.mart-category{max-width:210px;white-space:normal}}
@media(prefers-reduced-motion:reduce){.button,.mart-item,.menu-tile{transition:none!important;transform:none!important}}
.trainer-dashboard{display:grid;grid-template-columns:1fr 1.1fr;gap:20px}.trainer-dashboard>.app-card{margin:0;border-radius:22px}
.trainer-dashboard>.app-card:first-child{position:relative;overflow:hidden;padding:26px;background:linear-gradient(145deg,var(--app-card),var(--app-raised))}
.trainer-dashboard>.app-card:first-child:after{content:'';position:absolute;width:150px;height:150px;border:24px solid #9aafc116;border-radius:50%;right:-50px;bottom:-65px;pointer-events:none}
.trainer-profile-name{font-size:1.4rem;overflow-wrap:anywhere}.trainer-dashboard .home-pokemon{display:grid;grid-template-columns:140px 1fr;column-gap:18px;text-align:left;align-content:center;padding:20px}
.home-pokemon>.sprite-frame{grid-column:1;grid-row:1/5;align-self:center;background:radial-gradient(ellipse at 50% 77%,#4062782b,transparent 60%)}
.home-pokemon>h2,.home-pokemon>p,.home-pokemon>.stat-meter{grid-column:2}.home-pokemon>.action-row{grid-column:1/-1;justify-content:stretch;margin-top:14px}.home-pokemon>.action-row>.button{flex:1}
.main-menu-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;width:100%;margin:25px 0}
.menu-tile{--tile:#cf354a;display:flex;align-items:center;gap:14px;position:relative;overflow:hidden;min-height:86px;padding:14px 16px;border:2px solid #30445b;border-left:7px solid var(--tile);border-radius:15px;background:linear-gradient(115deg,var(--app-card) 73%,var(--app-raised) 73%);color:var(--app-ink);box-shadow:0 5px 0 #30445b;cursor:pointer;text-align:left;font-weight:800;transition:transform .15s,box-shadow .15s}
.main-menu-buttons .menu-tile{min-height:86px}.menu-tile:hover{transform:translateY(-3px);box-shadow:0 8px 0 #30445b}.menu-tile:active{transform:translateY(4px);box-shadow:0 1px 0 #30445b}
.menu-icon{display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:12px;background:var(--app-raised);box-shadow:inset 0 -3px #45688517}.menu-icon img{width:38px;height:38px}.menu-label{flex:1;font-size:1rem;line-height:1.2}.menu-arrow{font-size:28px;color:var(--tile)}
.menu-tile[data-screen=story]{--tile:#5b9d60}.menu-tile[data-screen=events]{--tile:#a86cbc}.menu-tile[data-screen=multiplayer]{--tile:#448bc7}.menu-tile[data-screen=gts]{--tile:#39a39c}.menu-tile[data-screen=highscores]{--tile:#d3a230}.menu-tile[data-screen=shop]{--tile:#c27d36}.menu-tile[data-screen=mail]{--tile:#5794b8}.menu-tile[data-screen=bag]{--tile:#cc8141}.menu-tile[data-screen=breed]{--tile:#c0759b}.menu-tile[data-screen=options]{--tile:#718392}
.main-menu-buttons>.button{min-height:46px}.main-menu-buttons>.button:last-child{margin-top:0}.menu-chat{margin-top:26px}
.storage-screen{max-width:1240px}.storage-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:20px}.storage-grid{display:grid;gap:12px;padding:18px;border:3px solid #436986;border-radius:20px;background:linear-gradient(#d9e9e7aa,#bad5deaa),repeating-linear-gradient(0deg,transparent 0 38px,#547e6c22 39px 40px)}
.party-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.pc-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:14px}
.storage-pokemon,.storage-empty{position:relative;min-width:0;min-height:157px;border:2px solid #67879a;border-radius:13px;background:var(--app-card);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 5px;color:var(--app-ink)}
.storage-pokemon{cursor:pointer;box-shadow:0 3px 0 #4e71892a}.storage-pokemon:hover{border-color:#cf354a;background:var(--app-raised)}.storage-pokemon.selected{border:3px solid #cf354a;box-shadow:0 0 0 3px #cf354a26}.storage-pokemon strong{font-size:.84rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-pokemon small{font-size:.72rem}.storage-pokemon>.item-sprite{position:absolute;right:2px;top:2px;width:23px;height:23px}.slot-number{position:absolute;top:4px;left:7px;color:var(--app-muted);font-size:.65rem;font-weight:800}
.pc-grid .storage-pokemon,.pc-grid .storage-empty{min-height:108px;padding:5px 2px;border-radius:9px}.pc-grid .storage-pokemon strong{font-size:.68rem}.pc-grid .sprite-frame{--sprite-size:58px!important}
.storage-empty{background:#dae7e966;border:2px dashed #7899a77a;color:#587486}.pokeball-mark{width:30px;height:30px;border:3px solid currentColor;border-radius:50%;opacity:.25;background:linear-gradient(transparent 43%,currentColor 44% 56%,transparent 57%);position:relative}.pokeball-mark:after{content:'';position:absolute;inset:8px;border:2px solid currentColor;border-radius:50%;background:#d5e3e8}
.storage-inspector{position:sticky;top:100px}.storage-inspector .app-card{display:flex;flex-direction:column;gap:10px;text-align:center}.storage-inspector .pokemon-types{justify-content:center}.storage-inspector .collection-portrait{height:125px}.storage-inspector .button{width:100%}.storage-inspector .empty-state{min-height:260px;display:grid;place-content:center;border:2px dashed var(--app-border)}
.type-badge{font-weight:700;border:1px solid #48688422}.type-badge[data-type=Normal]{background:#a7a79733}.type-badge[data-type=Fighting]{background:#b7655333}.type-badge[data-type=Flying]{background:#9b9acb33}.type-badge[data-type=Poison]{background:#b16faa33}.type-badge[data-type=Ground]{background:#c2a26133}.type-badge[data-type=Rock]{background:#ac965833}.type-badge[data-type=Bug]{background:#9cac4b33}.type-badge[data-type=Ghost]{background:#8570ab33}.type-badge[data-type=Steel]{background:#92a9b033}.type-badge[data-type=Ice]{background:#7ac9ca33}.type-badge[data-type=Dragon]{background:#7775bf33}.type-badge[data-type=Dark]{background:#87766933}.type-badge[data-type=Fairy]{background:#d49eb533}
.bag-pockets{display:flex;gap:8px;overflow-x:auto;padding:6px 2px 18px}.bag-pocket{white-space:nowrap;flex:none;border:2px solid var(--app-border);border-radius:10px 10px 4px 4px;padding:12px 15px;background:var(--app-card);color:var(--app-ink);font-weight:700;cursor:pointer}.bag-pocket.active{background:#425d79;color:#fff;border-color:#243e59;box-shadow:0 4px 0 #cf923d}
.bag-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.bag-item{text-align:center;display:flex;flex-direction:column;gap:8px;border-top:5px solid #c28b48}.bag-item h3{margin:3px 0;font-size:.95rem}.bag-item .button{margin-top:auto}.bag-item-art{position:relative;display:grid;place-items:center;height:83px;border-radius:13px;background:radial-gradient(ellipse,var(--app-raised),transparent 72%)}.bag-item-art>.item-sprite{width:58px;height:58px}.item-quantity{position:absolute;right:2px;bottom:3px;background:var(--app-raised);padding:3px 7px;border:1px solid var(--app-border);border-radius:7px;font-size:.75rem;font-weight:800}.bag-target{text-align:center;min-height:30px}
.leaderboard-table{border:2px solid var(--app-border);border-radius:15px;overflow:hidden}.leaderboard-table th{background:var(--app-raised);text-transform:uppercase;font-size:.72rem;letter-spacing:.08em}.leaderboard-table tr[data-own=true]{background:#72b9ff1c}.leaderboard-score{font-weight:850;font-variant-numeric:tabular-nums}.rank-medal{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;font-weight:800;background:var(--app-raised)}[data-rank="1"] .rank-medal{background:#f7d16b;color:#755311;box-shadow:inset 0 0 0 3px #c6993222}[data-rank="2"] .rank-medal{background:#dae0e9;color:#46556a}[data-rank="3"] .rank-medal{background:#dcae88;color:#61422b}
.pokedex-screen{max-width:1160px}.pokedex-screen>.app-card{position:relative;overflow:hidden;border:3px solid #832b3f;background:linear-gradient(130deg,#c7324c,#a92740);color:#fff;padding:24px 30px;border-radius:22px 22px 8px 22px;box-shadow:0 6px 0 #722838}.pokedex-screen>.app-card h2{font-size:1.6rem}.pokedex-screen>.app-card p{font-size:.84rem;opacity:.9}.pokedex-screen>.app-card .stat-meter small{color:#fff}.pokedex-screen>.app-card progress{accent-color:#59cebd}.dex-lights{display:flex;gap:8px;align-items:center;margin-bottom:16px}.dex-lights i{width:12px;height:12px;border-radius:50%;background:#f7d564;border:2px solid #8b2935}.dex-lights i:first-child{width:35px;height:35px;background:radial-gradient(circle at 35% 30%,#d5f8ff,#36aadd 60%);border:4px solid #f3f6fa;box-shadow:0 2px 3px #48162077}.dex-lights i:last-child{background:#83d797}
.dex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:20px}.dex-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;border:2px solid var(--app-border);border-radius:13px;padding:13px 8px;background:var(--app-card);color:var(--app-ink);cursor:pointer;min-width:0}.dex-tile:hover{border-color:#cf354a;background:var(--app-raised)}.dex-number{align-self:flex-start;font-size:.7rem;font-variant-numeric:tabular-nums;color:var(--app-muted)}.dex-tile strong{font-size:.84rem}.dex-tile small{font-size:.7rem;color:#398274}.dex-tile.unregistered>.sprite-frame{opacity:.22;filter:grayscale(1)}.dex-tile.unregistered small{color:var(--app-muted)}.dex-detail{text-align:center}.dex-detail .pokemon-types{justify-content:center;margin:15px 0}
@media(max-width:1000px){.storage-layout{grid-template-columns:minmax(0,1fr) 240px}.pc-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.storage-inspector .app-card{padding:12px}.pc-grid .sprite-frame{--sprite-size:48px!important}.trainer-dashboard .home-pokemon{grid-template-columns:110px 1fr}.home-pokemon>.sprite-frame{--sprite-size:105px!important}.menu-tile{gap:10px;padding:12px}.menu-label{font-size:.88rem}}
@media(max-width:760px){.trainer-dashboard{grid-template-columns:1fr}.main-menu-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.storage-layout{grid-template-columns:1fr}.storage-inspector{position:static}.storage-inspector>.empty-state{min-height:90px}.storage-inspector .app-card{display:grid;grid-template-columns:1fr 1fr}.storage-inspector .collection-portrait{grid-row:span 3}.storage-inspector .stat-meter,.storage-inspector .action-row{grid-column:1/-1}.pc-grid .sprite-frame{--sprite-size:54px!important}.app-topbar{background:linear-gradient(110deg,#cf354a 0 185px,var(--app-card) 186px)}.header-flags{max-width:215px}.bag-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:440px){.app-topbar{padding:8px;background:linear-gradient(110deg,#cf354a 0 150px,var(--app-card) 151px)}.app-brand{gap:2px}.brand-sprite{--sprite-size:30px!important}.header-flags{max-width:184px}.language-flag{width:32px;height:32px}.main-menu-buttons{gap:10px}.menu-tile{min-height:77px!important;padding:10px 8px;gap:8px;border-left-width:5px}.menu-icon{width:34px;height:40px}.menu-icon img{width:29px;height:29px}.menu-arrow{display:none}.menu-label{font-size:.83rem}.pc-grid{gap:4px;padding:8px}.pc-grid .sprite-frame{--sprite-size:39px!important}.pc-grid .storage-pokemon,.pc-grid .storage-empty{min-height:88px}.pc-grid .storage-pokemon strong{font-size:.55rem}.party-grid{gap:8px;padding:10px}.party-grid .sprite-frame{--sprite-size:72px!important}.storage-pokemon strong{font-size:.75rem}.dex-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.dex-tile>.sprite-frame{--sprite-size:68px!important}.dex-tile strong{font-size:.73rem}.leaderboard-table th,.leaderboard-table td{padding:10px 7px}.leaderboard-table .sprite-frame{display:none}}
@media(prefers-reduced-motion:reduce){.menu-tile,.button{transition:none}.menu-tile:hover,.button:hover:not(:disabled){transform:none}}
/* Shared menu interiors: handheld displays, paper mail and connected chat. */
body[data-section] #appRoot .screen-title:not(.visually-hidden){position:relative;display:flex;align-items:center;gap:20px;min-height:116px;padding:20px 26px;border:3px solid #30445b;border-left:8px solid var(--section-accent,#cf354a);border-radius:22px 22px 10px 22px;background:linear-gradient(115deg,color-mix(in srgb,var(--section-accent,#cf354a) 80%,#203147),#243b51);color:#fff;box-shadow:0 6px 0 #24364c2b;overflow:hidden;margin-bottom:24px}
body[data-section] #appRoot .screen-title h1{margin:0;font-size:1.85rem;font-weight:850;letter-spacing:-.035em;color:inherit}.screen-title>.menu-heading-art{flex:none;width:74px;height:74px;display:grid;place-items:center;border:3px solid #fff7c2;border-radius:19px;background:linear-gradient(140deg,#fff7d8,#e7c783);box-shadow:0 4px 0 #152d4055;transform:rotate(-5deg)}.menu-heading-art img{image-rendering:pixelated;object-fit:contain;transform:rotate(5deg)}body[data-section] #appRoot .screen-title p{color:#eef6ff;max-width:64ch;line-height:1.5;margin:5px 0 0}.screen-title:not(.visually-hidden):after{content:'';position:absolute;width:130px;height:130px;border:18px solid #ffffff0b;border-radius:50%;right:-25px;top:-48px;pointer-events:none}
body[data-section] #appRoot .screen:not(.main-menu)>.app-card,body[data-section] #appRoot .list-stack>.app-card{border:2px solid color-mix(in srgb,var(--section-accent,#758798) 45%,var(--app-border));border-radius:19px;padding:20px;background:linear-gradient(145deg,var(--app-card),color-mix(in srgb,var(--section-accent,#758798) 5%,var(--app-card)));box-shadow:0 5px 0 #24364c12}
.app-card h2,.app-card h3{letter-spacing:-.02em}.app-card>h2:first-child{padding-bottom:12px;border-bottom:2px solid color-mix(in srgb,var(--section-accent,#7a94a7) 20%,var(--app-border))}
#gameShell label>span{font-weight:750;font-size:.81rem;color:var(--app-muted)}#gameShell :is(input:not([type=checkbox]):not([type=radio]),select,textarea),.app-dialog :is(input:not([type=checkbox]):not([type=radio]),select,textarea){border:2px solid color-mix(in srgb,var(--section-accent,#718392) 40%,var(--app-border));border-radius:12px;box-shadow:inset 0 3px 0 #26374a0b;background:var(--app-card);padding:11px 13px;min-height:44px;color:var(--app-ink)}#gameShell :is(input,select,textarea):focus,.app-dialog :is(input,select,textarea):focus{outline:3px solid color-mix(in srgb,var(--section-accent,#4b8cbc) 25%,transparent);outline-offset:2px;border-color:var(--app-primary)}
.tab-row{gap:7px!important;padding:6px!important;border:2px solid var(--app-border);border-radius:15px;background:color-mix(in srgb,var(--section-accent,#718392) 10%,var(--app-raised));width:fit-content;max-width:100%;overflow-x:auto}.tab-row>.tab{white-space:nowrap;border-radius:9px!important;min-height:40px}.app-dialog{border:3px solid #30445b!important;border-radius:22px!important;box-shadow:0 10px 0 #0b20394d,0 26px 90px #132c4a66!important;padding:24px!important}.app-dialog> .action-row:first-child{border-bottom:3px solid color-mix(in srgb,var(--section-accent,#718392) 38%,var(--app-border));padding-bottom:14px;margin-bottom:18px}.app-dialog::backdrop{background:#102940a6;backdrop-filter:blur(3px)}
.empty-state{padding:32px 20px!important;border:2px dashed color-mix(in srgb,var(--section-accent,#718392) 30%,var(--app-border));border-radius:16px;background:color-mix(in srgb,var(--section-accent,#718392) 4%,var(--app-card));text-align:center;line-height:1.6}.leaderboard-table,.data-table{border-radius:16px;overflow:hidden}.leaderboard-table th,.data-table th{background:var(--app-raised);font-weight:800}.settings-fields{gap:14px!important}.editor-home-grid .app-card{display:flex;align-items:center;gap:14px}.editor-home-grid .item-sprite{width:48px;height:48px;image-rendering:pixelated}
.mail-banner{display:flex;align-items:center;gap:24px;padding:20px 26px;border-radius:19px;border:2px solid #b3cbd6;background:linear-gradient(120deg,#f1f8fd,#dcecf5);color:#28485e;margin:0 0 22px}.mail-banner img{object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 5px 0 #2d668a20)}.mail-banner h2{margin:0 0 6px}.mail-banner p{margin:0;line-height:1.5}.mail-tabs{margin-bottom:16px}.mail-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px;margin-top:22px}.mail-envelope{position:relative;overflow:hidden;padding:22px!important;border:2px solid #c5bda2!important;border-radius:9px 19px 19px 19px!important;background:linear-gradient(155deg,#fffef5,#f1ead6)!important;color:#3a4d5e!important;box-shadow:0 5px 0 #68593416!important}.mail-envelope:before{content:'';position:absolute;inset:0 0 auto;height:6px;background:repeating-linear-gradient(135deg,#6391b8 0 12px,#f9f5e7 12px 24px,#c96064 24px 36px,#f9f5e7 36px 48px)}.mail-envelope.unread{border-color:#4f89ac!important}.mail-envelope>.action-row{padding-right:42px}.mail-stamp{float:right;object-fit:contain;padding:4px;border:2px dotted #ac9476;image-rendering:pixelated}.mail-envelope>p{font-size:.86rem;margin:12px 0 18px}.mail-envelope>.button{width:100%}.mail-letter{padding:20px;border:2px solid #d4c9a6;border-radius:12px;background:repeating-linear-gradient(#fffcef 0 30px,#e9dfc6 31px,#fffcef 32px);color:#30445b}.letter-message{white-space:pre-wrap;overflow-wrap:anywhere;line-height:2;margin:18px 0}.letter-seal{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#ebcad0;border:2px solid #ad5e72;margin:0 auto}.letter-seal img{width:36px;height:36px}.mail-letter>.action-row{background:#fffbed;border:1px solid #d9cfab;border-radius:12px;padding:10px;margin:10px 0}
.trainer-chat{padding:20px!important;border:3px solid #425d75!important;border-radius:23px!important;background:linear-gradient(145deg,var(--app-card),var(--app-raised))!important;box-shadow:0 6px 0 #22394e25!important;margin-top:22px}.chat-heading{display:flex;align-items:center;gap:12px;border-bottom:2px solid var(--app-border);padding-bottom:13px;margin-bottom:10px}.chat-heading img{object-fit:contain;image-rendering:pixelated;padding:5px;border-radius:11px;background:#d7e8e2}.chat-heading h2{margin:0}.chat-channel{font-size:.8rem;color:var(--app-primary);padding:5px 9px;border-radius:7px;background:var(--app-card)}.trainer-chat .chat-status{font-size:.75rem}.trainer-chat>.action-row{gap:10px}.trainer-chat .chat-messages{display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-height:240px;max-height:340px;padding:16px!important;border:2px solid #90a8b76e;border-radius:16px;background:radial-gradient(circle at 12px 12px,#7898b510 1px,transparent 1px),var(--app-card);background-size:20px 20px;overflow-y:auto;scrollbar-width:thin;box-shadow:inset 0 3px 0 #2034490a}.chat-messages .empty-state{width:100%;box-sizing:border-box;border:0;margin:auto;background:none}.chat-bubble{position:relative;display:block;max-width:86%;padding:12px 15px 9px;border:1px solid var(--app-border);border-radius:4px 15px 15px 15px;background:var(--app-raised);color:var(--app-ink);white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:0 3px 0 #1b354610;line-height:1.5;font-size:.88rem}.chat-bubble.own{align-self:flex-end;background:color-mix(in srgb,#54ab88 22%,var(--app-card));border-color:#7cbda2;border-radius:15px 4px 15px 15px}.chat-bubble strong{color:var(--app-primary);font-size:.78rem}.chat-bubble time{display:block;text-align:right;font-size:.65rem;opacity:.65;margin-top:4px}.chat-composer{display:flex;align-items:flex-end!important;gap:12px!important;margin-top:13px}.chat-composer>label{flex:1;min-width:0}.chat-composer>.button{min-width:86px;min-height:45px;flex:none}.chat-composer label>span{font-size:.72rem}
@media(max-width:650px){body[data-section] #appRoot .screen-title:not(.visually-hidden){gap:14px;min-height:96px;padding:16px;margin-bottom:20px}.screen-title>.menu-heading-art{width:55px;height:55px;border-radius:14px}.menu-heading-art img{width:39px;height:39px}body[data-section] #appRoot .screen-title h1{font-size:1.45rem}body[data-section] #appRoot .screen-title p{font-size:.8rem}.mail-banner{gap:14px;padding:16px}.mail-banner img{width:64px;height:64px}.mail-banner h2{font-size:1.15rem}.mail-banner p{font-size:.8rem}.trainer-chat{padding:13px!important}.trainer-chat .chat-messages{min-height:210px;max-height:310px;padding:12px!important}.chat-bubble{max-width:91%}.app-dialog{padding:17px!important;width:calc(100% - 34px)!important}.mail-list{grid-template-columns:1fr}.chat-composer{gap:8px!important}.chat-composer>.button{min-width:70px}}

/* Shared interaction and responsive menu surfaces. */
:root { --menu-ease: cubic-bezier(.2,.7,.2,1); }
#appRoot .screen { animation: menu-arrive .2s var(--menu-ease) both; }
@keyframes menu-arrive { from { opacity:.45; translate:0 8px; } to { opacity:1; translate:0 0; } }
.button, .menu-tile, .storage-pokemon, .dex-tile {
  touch-action:manipulation; -webkit-tap-highlight-color:transparent;
  transition:background .16s, border-color .16s, box-shadow .16s, transform .16s var(--menu-ease);
}
button:focus-visible, [role=button]:focus-visible {
  outline:3px solid color-mix(in srgb,var(--app-primary) 75%,white); outline-offset:4px;
}
.button:not(.chat-language-tab) { position:relative; min-height:44px; }
.button[aria-busy=true] { cursor:progress; pointer-events:none; padding-inline-end:42px; opacity:.8; }
.button[aria-busy=true]::after {
  content:''; position:absolute; inset-inline-end:15px; top:calc(50% - 7px);
  width:14px; height:14px; border:2px solid currentColor; border-right-color:transparent;
  border-radius:50%; animation:menu-spin .7s linear infinite;
}
@keyframes menu-spin { to { rotate:360deg; } }
.button:disabled { filter:saturate(.4); box-shadow:none!important; transform:none!important; }
.tab-row .tab[aria-selected=true], .mart-category[aria-pressed=true] {
  box-shadow:inset 0 -3px #0002,0 0 0 2px color-mix(in srgb,var(--section-accent,var(--app-primary)) 24%,transparent)!important;
}
.tab-row { scrollbar-width:thin; scroll-padding-inline:8px; }
.tab-row .tab { flex:0 0 auto; }
.control-field { min-width:0; }
.control-field>span { font-weight:750; font-size:.79rem; letter-spacing:.015em; }
.control-field:focus-within>span { color:var(--app-primary); }
.control-field input,.control-field select,.screen textarea,.dialog-content textarea {
  min-height:46px; transition:border-color .15s, box-shadow .15s; box-shadow:inset 0 2px 0 #213c5410;
}
.search-field { position:relative; }
.search-field input { padding-inline-start:40px; }
.search-field::after {
  content:''; position:absolute; width:12px; height:12px; border:2px solid var(--app-muted);
  border-radius:50%; bottom:17px; inset-inline-start:15px; pointer-events:none;
}
.search-field::before {
  content:''; position:absolute; width:7px; height:2px; background:var(--app-muted);
  bottom:14px; inset-inline-start:26px; rotate:45deg; pointer-events:none; z-index:1;
}
input:disabled,select:disabled,textarea:disabled { opacity:.65; cursor:not-allowed; }
#appStatus:not([hidden]) {
  position:fixed; z-index:90; right:22px; bottom:max(22px,env(safe-area-inset-bottom));
  display:flex; align-items:center; gap:14px; width:max-content; max-width:min(480px,calc(100vw - 32px));
  border:2px solid #6d9a85; border-left:6px solid #3a9870; border-radius:16px;
  background:var(--app-card); color:var(--app-ink); box-shadow:0 8px 30px #19374a30;
  padding:12px 10px 12px 16px; animation:menu-arrive .18s var(--menu-ease);
}
#appStatus.error { border-color:#c47780; border-left-color:#b52a37; }
.status-message { min-width:0; overflow-wrap:anywhere; font-size:.9rem; }
.status-dismiss { border:0; border-radius:10px; width:38px; height:38px; flex:none; background:var(--app-raised); color:var(--app-ink); cursor:pointer; font-size:1.5rem; }
.app-navigation:has(#backMenu[hidden]) { min-height:0; margin-bottom:0; }
.app-dialog[open] { display:flex; flex-direction:column; gap:0; padding:0!important; max-height:88vh; max-height:88dvh; animation:dialog-arrive .18s var(--menu-ease); overflow:hidden; }
@keyframes dialog-arrive { from { opacity:.3; translate:0 10px; scale:.985; } to { opacity:1; translate:0 0; scale:1; } }
.app-dialog>.dialog-heading {
  flex:none; margin:0!important; padding:16px 20px!important; background:linear-gradient(120deg,var(--app-raised),var(--app-card));
  border-bottom:2px solid var(--app-border)!important; gap:14px;
}
.dialog-heading h2 { flex:1; min-width:0; overflow-wrap:anywhere; font-size:1.15rem; }
.dialog-heading>.button { flex:none; }
.dialog-content { overflow-y:auto; overscroll-behavior:contain; padding:20px; min-height:0; scrollbar-width:thin; }
.dialog-content .app-card:last-child { margin-bottom:0; }
.menu-loading { max-width:560px; margin:36px auto; padding:32px; text-align:center; border:2px solid var(--app-border); border-radius:24px; background:var(--app-card); }
.menu-loading>img { display:block; margin:0 auto 15px; image-rendering:pixelated; animation:loading-ball 1.2s ease-in-out infinite alternate; }
@keyframes loading-ball { from { rotate:-12deg; translate:0 0; } to { rotate:12deg; translate:0 -5px; } }
.loading-lines { display:grid; gap:12px; margin-top:26px; }
.loading-lines>i { display:block; height:16px; border-radius:7px; background:linear-gradient(90deg,var(--app-raised),var(--app-card),var(--app-raised)); background-size:200% 100%; animation:loading-shimmer 1.4s ease-in-out infinite; }
.loading-lines>i:last-child { width:65%; margin:auto; }
@keyframes loading-shimmer { to { background-position:-200% 0; } }
.mart-toolbar { padding:16px 18px 4px; margin:18px 0; border:2px solid var(--app-border); border-radius:20px; background:color-mix(in srgb,var(--app-raised) 45%,var(--app-card)); }
.mart-toolbar>.control-field { max-width:560px; margin-top:16px; }
.mart-shelves { scroll-snap-type:x proximity; overscroll-behavior-x:contain; }
.mart-category { scroll-snap-align:start; }
.screen :is(.mart-item,.bag-item,.collection-card,.mail-envelope):focus-within { border-color:var(--app-primary)!important; box-shadow:0 0 0 3px color-mix(in srgb,var(--app-primary) 14%,transparent)!important; }
.storage-inspector { position:sticky; top:96px; }
.storage-pokemon.selected { background:color-mix(in srgb,var(--app-primary) 10%,var(--app-card)); }
.chat-latest { display:block; margin:-14px auto 0; position:relative; z-index:1; border-radius:999px!important; font-size:.76rem; min-height:36px!important; }
.chat-messages { overscroll-behavior:contain; overflow-anchor:none; }
.list-stack>.action-row { padding:12px; border:1px solid var(--app-border); border-radius:13px; background:color-mix(in srgb,var(--app-raised) 45%,var(--app-card)); margin:8px 0; }
.list-stack>.action-row>strong { flex:1; min-width:120px; overflow-wrap:anywhere; }
.stat-meter progress { accent-color:var(--app-primary); border-radius:10px; overflow:hidden; }
@media(hover:hover) and (pointer:fine) {
  .menu-tile:hover .menu-icon { background:color-mix(in srgb,var(--tile) 18%,var(--app-raised)); }
  .menu-tile:hover .menu-arrow { translate:3px 0; }
  .menu-arrow { transition:translate .16s; }
  .screen :is(.bag-item,.dex-tile,.storage-pokemon):hover { transform:translateY(-2px); border-color:var(--app-primary); }
}
@media(max-width:760px) {
  #gameShell { padding:12px 14px 32px; }
  .screen>.action-row { gap:8px; }
  .screen>.action-row>.button { flex:1 1 auto; }
  .storage-layout { grid-template-columns:1fr; }
  .storage-inspector { position:static; }
  .mart-toolbar { padding:12px 12px 2px; }
}
@media(max-width:480px) {
  .app-dialog[open] { width:calc(100% - 16px)!important; max-height:calc(100dvh - 24px); border-radius:20px!important; }
  .app-dialog>.dialog-heading { padding:12px 14px!important; }
  .dialog-content { padding:14px; }
  .main-menu-buttons { gap:10px; }
  .menu-tile { padding:10px; gap:8px; border-left-width:5px; }
  .menu-label { font-size:.86rem; overflow-wrap:anywhere; }
  .menu-icon { width:38px; height:42px; }
  .menu-icon img { width:30px; height:30px; }
  .menu-arrow { font-size:22px; }
  .mart-featured { grid-template-columns:1fr; }
  .mart-featured .mart-item { display:grid; grid-template-columns:60px 1fr auto; text-align:left; padding:12px!important; gap:6px 10px; }
  .mart-featured .mart-item:before { display:none; }
  .mart-featured .mart-item-art { grid-column:1; grid-row:1/5; }
  .mart-featured .mart-item h3 { grid-column:2; min-height:0; }
  .mart-featured .mart-item>small,.mart-featured .mart-price { grid-column:2; }
  .mart-featured .mart-item>.button { grid-column:3; grid-row:1/5; font-size:.78rem; padding:8px; }
  .breeding-parents { grid-template-columns:1fr; }
  #appStatus:not([hidden]) { right:12px; bottom:max(12px,env(safe-area-inset-bottom)); max-width:calc(100vw - 24px); }
}
@media(prefers-reduced-motion:reduce) {
  #appRoot .screen,.app-dialog[open],#appStatus,.menu-loading>img,.loading-lines>i,.button::after { animation:none!important; }
  .button,.menu-tile,.storage-pokemon,.dex-tile,.menu-arrow { transition:none!important; translate:none!important; transform:none!important; }
}
