/* GBA-era pixel styling, drawn with original tiles and UI art. */
:root{--bg:#a9c4d3;--panel:#faf4d8;--panel2:#eef4df;--line:#567b91;--muted:#5e7486;--cream:#fff9e6;--red:#dd4d48;--yellow:#f7d681;--green:#62bd76;color:#243c55}
body{background-color:#a7c3d1;background-image:linear-gradient(45deg,#ffffff21 25%,transparent 25%),linear-gradient(-45deg,#ffffff21 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ffffff21 75%),linear-gradient(-45deg,transparent 75%,#ffffff21 75%);background-size:28px 28px;background-position:0 0,0 14px,14px -14px,-14px 0}
.app-shell{max-width:1450px;min-height:100vh;padding:17px 25px 14px;background:linear-gradient(135deg,#ed6660,#d84a49 40%,#c93c43);border:6px solid #873944;border-top:0;border-radius:0 0 34px 34px;box-shadow:0 18px 0 #69859a,0 28px 35px #364f62aa}
.topbar{height:72px;margin-bottom:13px;color:#fff9e6;border-bottom:3px solid #f9a39a;padding:0 8px 14px}
.brand-ball{border:3px solid #fff6d8;background:#f6d78b;box-shadow:3px 3px 0 #8e383b}
.eyebrow{color:#ffe5a9}.brand h1{font-family:var(--pixel);font-size:20px;letter-spacing:1px;text-shadow:3px 3px #923443}.brand h1 span{color:#ffe9a2}
.save-status{color:#fff0aa;text-shadow:1px 1px #8d3444}
.icon-button,.subtle-button{background:#f7e8c5;color:#27445f;border:3px solid #9e4d4e;border-radius:3px;box-shadow:3px 3px 0 #8c3544}
.icon-button:hover,.subtle-button:hover{background:#fff7dc}
.layout{grid-template-columns:215px minmax(0,1fr) 215px;gap:14px}
.side-panel{min-height:700px;padding:13px;background:#f9f3d9;color:#263f57;border:4px solid #365b7a;border-radius:5px;box-shadow:5px 5px 0 #8d3540,inset 0 0 0 3px #c4dbd3}
.panel-heading{background:#345d7b;color:#fff8dc;padding:12px 8px;margin:-2px -2px 18px;font-size:8px;border-bottom:4px solid #7293a3}
.panel-dots{color:#f5d486}.trainer-card{gap:9px}.avatar{background:#a6d6d0;border:3px solid #496b7f;box-shadow:3px 3px 0 #91a69b}
.tiny-label{color:#577186}.trainer-card strong{color:#273f56}.trainer-sub{color:#557186}
#money-count{display:block;margin-top:4px;color:#b74c45}
.divider{background:#95b4bd;height:3px;margin:19px 0;border-bottom:1px solid #fffefa}
.section-head{color:#234c67}.section-head span:last-child{color:#647f92}
.party-card,.quest-card{background:#fffdf0;border:3px solid #5b8190;border-radius:3px;box-shadow:3px 3px 0 #b8c6ae;padding:10px}
.party-portrait{background:#dbe9c6;border:2px solid #729a8a;border-radius:2px}
.party-name{color:#233b55}.party-type{color:#517c71}.party-level{color:#b04c46}
.party-hp-label{color:#385469}.hp-track{background:#425665;border:2px solid #415a60;border-radius:2px;height:10px}.hp-track span{background:#5fc06d}.hp-track span.low{background:#e65c55}.hp-track span.medium{background:#e6bc51}
.item-row{color:#2b475e}.item-row b{color:#bd5145}.potion-icon{background:#ed94ad;border-color:#9e596e}
.use-potion{background:#e3f0d7;color:#2c5670;border:3px solid #628b95;border-radius:2px;box-shadow:3px 3px 0 #b0c3ab}.use-potion span{color:#38824e}.use-potion:hover:not(:disabled){background:#f5f1b9}
.side-bottom{border-top:3px solid #95b4bd}.mini-badge{background:#b4cbd3;color:#556e82;border-color:#668da0}.mini-badge.earned{background:#f7d279;color:#a76438}
.screen-frame{padding:8px;border:6px solid #304d69;border-radius:8px;background:#e9e5ce;box-shadow:6px 6px 0 #8a3540,inset 0 0 0 3px #fdf9e8}
.screen-top{height:29px;color:#2e5875;font-size:8px;border-bottom:2px solid #afc4bb}.screen-top-right{color:#567789}.live-dot{background:#dc6158;box-shadow:none;border:1px solid #a83f3c}
.game-screen{border:5px solid #3b5670;box-shadow:0 0 0 2px #a7bcb5;aspect-ratio:3/2;background:#9ccc78}
#map-canvas{image-rendering:pixelated}.screen-footer{height:26px;color:#536f83;font-size:6px}.screen-footer b{color:#dd4d48}.screen-footer span:nth-child(2){color:#345e72}
.under-screen{color:#fff1bd;padding-top:14px}.under-screen span:first-child{color:#fff1bd}
.quest-icon{background:#f6d171;border:3px solid #b67a48;border-radius:2px;color:#844a3f}.quest-card h3{color:#2e536e}.quest-card p{color:#506d76}.quest-progress{background:#c9d6be;border:1px solid #7b9b91}.quest-progress span{background:#dd5d52}.quest-footer{color:#a7564d}
.guide-item{color:#496879;margin:12px 0}.guide-key{background:#e9f3df;color:#315c70;border:2px solid #739ba3;border-radius:2px}
.dex-cell{background:#ecf2d9;border:2px solid #94b4aa;border-radius:2px;color:#72939d}.dex-cell.seen{border-color:#d5a854;background:#fff3cf}
.right-bottom{background:#e5f0d8;border:3px solid #79a18b;border-radius:2px;padding:8px}.right-bottom p{color:#3c645a}.right-bottom .lightning{color:#c3823d}
.right-panel .panel-heading{margin-bottom:12px}.right-panel .divider{margin:13px 0}.right-panel .guide-item{margin:8px 0}
.page-footer{color:#fff0c1;font-size:6px}
.start-overlay{background:linear-gradient(90deg,#f6f0dcee 0%,#f6f0dce4 58%,#eff4dfab 100%);padding:6%}
.start-overlay:after{right:3%;bottom:6%;width:43%;height:82%;aspect-ratio:auto;border:0;border-radius:0;box-shadow:none;transform:none;background:url('nyc-skyline.svg') center bottom/contain no-repeat;opacity:.75}
.start-content{max-width:480px}.start-pokeball{background:#f7d88e;border:4px solid #315875;box-shadow:4px 4px 0 #a5aa91}
.intro-kicker{color:#b44842}.start-content h2{font-family:var(--pixel);font-size:clamp(25px,2.8vw,40px);line-height:1.4;letter-spacing:-1px;color:#274a66;text-shadow:3px 3px 0 #fffdf1;margin:15px 0}.start-content h2 em{color:#d84945}.start-content p{font-family:var(--pixel);font-size:8px;line-height:2;color:#3f6578;max-width:420px}
.primary-button{background:#df514c;color:#fff8e8;border:3px solid #30566e;border-bottom:6px solid #264861;border-radius:2px;box-shadow:4px 4px 0 #9fa997;font-size:8px;padding:12px 13px}.primary-button:hover{background:#f16b59}
.intro-controls{color:#567784}
.modal-overlay{background:#243f62b8}.starter-modal{background:#fff8df;border:5px solid #355d7f;box-shadow:7px 7px 0 #263d59,inset 0 0 0 4px #a8c4c1;color:#2a4d66;padding:23px}
.starter-modal .modal-kicker{color:#cb5146}.starter-modal h2{font-family:var(--pixel);font-size:17px;line-height:1.6}.starter-modal p{font-family:var(--pixel);font-size:7px;line-height:1.8;color:#56788b}
.starter-option{background:#f0f2d9;border:3px solid #72999a;border-bottom:6px solid #4d7686;border-radius:2px}.starter-option:hover{background:#fff0bd;border-color:#cc7062}.starter-option strong{color:#2a5067}.starter-option small{color:#66817f}
.service-modal{width:min(530px,96%);max-height:92%;overflow:auto;background:#fff8df;border:5px solid #355d7f;box-shadow:7px 7px 0 #263d59,inset 0 0 0 4px #a8c4c1;color:#2a4d66;padding:25px;text-align:center}
.service-modal h2{font-family:var(--pixel);font-size:16px;line-height:1.5;margin:13px 0}.service-modal p{font-size:12px;color:#56788b}.service-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.service-options button,.service-close,.box-columns button{background:#eef2d9;border:3px solid #72999a;border-bottom:5px solid #4d7686;border-radius:2px;color:#294a61;font-family:var(--pixel);font-size:7px;padding:13px;cursor:pointer}.service-options button span{display:block;margin-top:10px;color:#ba5a49}.service-options button:hover,.box-columns button:hover:not(:disabled){background:#fff0bd}.service-close{background:#d85149;color:#fff8df;border-color:#764c55;padding:10px 20px}.box-modal{width:min(650px,98%)}.box-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;text-align:left;margin:15px 0}.box-columns>div{min-width:0}.box-columns h3{font-family:var(--pixel);font-size:8px}.box-columns>div>div{max-height:225px;overflow:auto;border:2px solid #8ba9a3;padding:5px;background:#f8f7e6}.box-columns button{width:100%;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px;padding:7px;margin-bottom:5px;font-size:6px;text-align:left}.box-columns button small{font-size:5px;color:#66817e}.box-columns button b{color:#bd584d}.box-columns button:disabled{opacity:.4;cursor:default}
.battle-overlay{background:#d9e9df}.battle-scene{background:linear-gradient(#d5e9e1 0 60%,#c9dfae 60%)}.battle-scene:before{background:repeating-linear-gradient(0deg,transparent 0 31px,#ffffff1a 31px 32px)}
.battle-platform{background:#8cc57e;box-shadow:0 5px 0 #73b46f}.enemy-platform{width:32%;height:10%;top:57%;right:8%}.player-platform{width:40%;height:13%;bottom:5%;left:5%}
.battle-scene canvas{filter:drop-shadow(5px 5px 0 #6c9b6780)}#enemy-sprite{right:13%;top:17%;width:23%}#player-sprite{left:11%;bottom:6%;width:29%}
.attack-quote{position:absolute;left:35%;bottom:33%;width:31%;z-index:2;background:#fffdf0;border:3px solid #5c7690;box-shadow:3px 3px 0 #76958b;color:#2f4b63;padding:7px;font-family:var(--pixel);font-size:6px;line-height:1.6;text-align:center;pointer-events:none}
.battle-overlay:not(.hidden) #enemy-sprite{animation:sprite-arrive .36s steps(6)}.battle-overlay:not(.hidden) #player-sprite{animation:sprite-arrive .42s steps(6)}
@keyframes sprite-arrive{from{opacity:0;transform:translateY(-14px) scale(.86)}to{opacity:1;transform:translateY(0) scale(1)}}
.battle-info{background:#fffdf0;border:3px solid #596e77;border-radius:13px 4px 13px 4px;box-shadow:3px 3px 0 #89ab9b;color:#2b465b}.battle-name{color:#2d475b}.battle-info .hp-track{border:1px solid #57747b;background:#4b5d67;height:9px}.hp-caption{color:#38586c}
.battle-menu{background:#fffdf0;border-top:6px solid #476886;grid-template-columns:1fr 42%;min-height:115px}.battle-message{color:#2e465c;border:4px solid #577c99;border-top:0;border-left:0;padding:14px;font-size:8px}.battle-actions{background:#fffdf0;border:4px solid #577c99;border-top:0;gap:2px;padding:6px}.battle-actions button{background:transparent;color:#314e66;border:0;border-radius:0;font-size:11px;justify-content:flex-start;padding-left:7px}.battle-actions button span{font-size:7px}.battle-actions button:hover:not(:disabled){background:#f5e6b7}.battle-actions button:disabled{opacity:.4}
.toast{background:#fffdf0;color:#2b4b63;border:4px solid #567a9a;box-shadow:4px 4px 0 #344c65;border-radius:2px}
.roster-mon{border:2px solid #72999a;background:#e8f1d7}.roster-mon.selected{border-color:#c85e4d;background:#fff0bf}
.sandwich-sprite{filter:drop-shadow(2px 2px 0 #675447)}
.avatar img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.trainer-portrait{position:absolute;right:38%;top:22%;width:13%;max-height:37%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(3px 4px 0 #6c9b6780)}
.brand h1{font-size:17px}
.food-sprite{display:inline-block;width:32px;height:32px;object-fit:contain;image-rendering:pixelated;vertical-align:middle;filter:drop-shadow(2px 2px 0 #5d625f66)}
.party-portrait .food-sprite{width:40px;height:40px}
.starter-emoji{display:grid;place-items:center;height:82px}
.starter-emoji .food-sprite{width:76px;height:76px}
.dex-cell .food-sprite,.roster-mon .food-sprite{width:29px;height:29px}
@media(max-width:760px){.brand h1{font-size:10px}.starter-emoji .food-sprite{width:42px;height:42px}}
.xp-line{display:flex;align-items:center;gap:6px;margin-top:7px;color:#52748a;font-family:var(--pixel);font-size:6px}.xp-meter{height:5px;flex:1;background:#c6d2c9;border:1px solid #74939d}.xp-meter i{display:block;height:100%;background:#60a9d6}.roster-mon:disabled{opacity:.45}
.battle-submenu{grid-column:2;grid-row:1;display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:minmax(0,1fr);gap:2px;padding:5px;background:#fffdf0;border:4px solid #577c99;border-top:0;overflow:auto}
.battle-submenu button{min-width:0;background:#fffdf0;border:0;border-radius:0;color:#2e4c64;text-align:left;padding:5px 7px;font-family:var(--pixel);font-size:7px;line-height:1.4;cursor:pointer}.battle-submenu button:hover:not(:disabled){background:#f6e7b6}.battle-submenu button:disabled{opacity:.4;cursor:default}.battle-submenu button span,.battle-submenu button small{display:block}.battle-submenu button small{font-size:5px;color:#788b82;margin-top:5px}.battle-submenu .menu-back{grid-column:2;color:#ba594c}
.right-bottom{position:static;margin-top:12px}.right-panel{height:auto}.pokedex-grid{gap:5px}.dex-cell{height:39px;aspect-ratio:auto}
@media(max-width:1200px){.layout{grid-template-columns:205px minmax(0,1fr)}.side-panel{min-height:620px}}
@media(max-width:760px){.app-shell{padding:8px;background:#d94c49;border-width:3px;border-radius:0}.topbar{height:58px;padding:0 3px 9px}.brand h1{font-size:13px}.brand-ball{width:31px;height:31px;font-size:17px}.layout{display:flex}.left-panel{min-height:0;padding:10px}.screen-frame{padding:5px;border-width:4px}.screen-top{font-size:6px;height:23px}.screen-footer{height:21px}.start-content h2{font-size:22px}.start-content p{font-size:6px;line-height:1.8}.start-overlay:after{opacity:.45}.intro-kicker{font-size:5px}.primary-button{font-size:6px;padding:9px}.intro-controls{font-size:4px}.mobile-controls{padding:12px 25px}.dpad button{background:#293d59;border:2px solid #fff0d0;border-radius:2px}.action-key{background:#f0d584;border:3px solid #5e3441;border-radius:50%;color:#60404a}.battle-menu{min-height:88px}.battle-message{font-size:5px;padding:6px}.battle-actions button span{font-size:5px}.battle-actions button{padding-left:2px}.starter-modal{padding:12px}.starter-modal h2{font-size:10px}.starter-modal p{font-size:5px}.starter-option strong{font-size:5px}}
@media(max-width:760px){.battle-menu{height:36%;min-height:112px}.battle-message{font-size:6px}.battle-submenu{padding:2px}.battle-submenu button{font-size:6px;padding:2px}.battle-submenu button small{font-size:5px;margin-top:2px}}
@media(max-width:760px){.service-modal{padding:12px}.service-modal h2{font-size:11px}.service-options button,.service-close{font-size:6px;padding:8px}.box-columns{gap:5px}.box-columns button{font-size:5px;padding:4px}.box-columns button small{font-size:4px}}
