/* Unified PokéLog ball geometry; game colors only affect the upper hemisphere. */
.brand-ball,.brand-icon,.tiny-ball,.ball-sample span,.ball{box-sizing:border-box;display:inline-block;position:relative;flex-shrink:0;border-radius:50%;aspect-ratio:1;background:linear-gradient(to bottom,var(--ball-fill,#e84c4c) 0 44%,#26354d 44% 56%,#fff 56%);border:2px solid #26354d}
.brand-ball,.brand-icon{--ball-fill:#e84c4c;width:29px;height:29px;flex-basis:29px}
.tiny-ball,.ball-sample span{--ball-fill:var(--scene-ball,#e84c4c);width:24px;height:24px}
.brand-ball::after,.brand-icon::after,.tiny-ball::after,.ball-sample span::after,.ball::after{content:"";box-sizing:border-box;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:44%;height:44%;border:2px solid #26354d;border-radius:50%;background:#fff}
body .entry .ball,body .game-colors .ball,body .ball,body.obs .obs-cell .ball{--ball-fill:var(--scene-ball,#e84c4c);border-color:#26354d;background:linear-gradient(to bottom,var(--ball-fill) 0 44%,#26354d 44% 56%,#fff 56%)}
body .entry .ball::after,body .game-colors .ball::after,body .ball::after,body.obs .obs-cell .ball::after,body.obs.dense .obs-cell .ball::after{left:50%;top:50%;width:44%;height:44%;transform:translate(-50%,-50%);border-color:#26354d;border-width:2px;background:#fff}

/* Dex placeholders retain the original monochrome game palette. */
body .entry .ball,body .game-colors .ball,body .ball,body.obs .obs-cell .ball{border-color:var(--scene-ball,#7d8998);background:linear-gradient(to bottom,color-mix(in srgb,var(--scene-ball,#7d8998) 24%,white) 0 44%,var(--scene-ball,#7d8998) 44% 56%,#fff 56%)}
body .entry .ball::after,body .game-colors .ball::after,body .ball::after,body.obs .obs-cell .ball::after,body.obs.dense .obs-cell .ball::after{border-color:var(--scene-ball,#7d8998)}
