* { box-sizing: border-box; }
body { margin: 0; font: 14px/1.4 "Segoe UI", system-ui, sans-serif; background: #111; color: #eee; overflow: hidden; user-select: none; }
.hidden { display: none !important; }
button { background: #e3350d; color: #fff; border: 0; border-radius: 6px; padding: 6px 12px; cursor: pointer; font: inherit; }
button:hover { filter: brightness(1.15); }
button.alt { background: #3b4cca; }
button:disabled { opacity: .4; cursor: default; }
input { background: #222; color: #eee; border: 1px solid #444; border-radius: 6px; padding: 8px 10px; font: inherit; width: 100%; user-select: text; }
.muted { color: #999; font-size: 12px; }

/* Écran de lancement : le jeu cherche une mise à jour avant d'afficher la connexion ; même décor que l'écran de mise à jour, pour passer de l'un à l'autre sans saut */
#splash, #upd { position: fixed; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 30px; padding: 16px; background: radial-gradient(ellipse at 50% 36%, #2a3f6b 0%, #131e38 46%, #05080f 100%); }
#splash { z-index: 100; transition: opacity .6s; }
#splash.out { opacity: 0; pointer-events: none; }
.bootLogo { font: 900 clamp(40px, 6vw, 72px)/1 Consolas, "Courier New", monospace; letter-spacing: 2px; text-shadow: 4px 4px 0 #000a; white-space: nowrap; }
.bootLogo .p { color: #fff; -webkit-text-stroke: 1px #555; }
.bootLogo .f { color: #ff7a2f; -webkit-text-stroke: 1px #7a2a08; }
.bootLogo .m { color: #f0e060; -webkit-text-stroke: 1px #7a6a10; font-size: 1.3em; }
.bootStage { position: relative; width: 84px; height: 84px; }
.bootStage::after { content: ''; position: absolute; left: 12%; right: 12%; bottom: -3px; height: 10px; border-radius: 50%; background: #0008; }
.bootBall { position: relative; z-index: 1; display: block; width: 100%; height: 100%; transform-origin: 50% 88%; animation: bootWobble 2s ease-in-out infinite; }
/* la Pokéball qui tremble, comme pendant une capture */
@keyframes bootWobble { 0%, 52%, 100% { transform: rotate(0); } 8% { transform: rotate(-20deg); } 17% { transform: rotate(17deg); } 26% { transform: rotate(-12deg); } 35% { transform: rotate(9deg); } 44% { transform: rotate(-4deg); } }
/* fenêtre de texte des jeux Pokémon : papier blanc, double cadre */
.bootWin { width: min(660px, 100%); padding: 16px 24px; box-sizing: border-box; background: #fbfbf6; color: #2c3440; border: 4px solid #34435f; border-radius: 12px; box-shadow: inset 0 0 0 3px #fbfbf6, inset 0 0 0 5px #7fa8d8, 0 12px 34px #000a; font: 700 26px/1.4 "MmoBattle", "Courier New", monospace; text-align: center; }
.bootDots::after { content: ''; animation: bootDots 1.4s steps(1) infinite; }
@keyframes bootDots { 0% { content: ''; } 25% { content: '.'; } 50% { content: '..'; } 75% { content: '...'; } }
#bootVer { min-height: 16px; color: #8fa0bd; font-size: 13px; font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: reduce) { .bootBall { animation: none; } }
/* Écran de connexion façon PokeMMO */
.screen { position: fixed; inset: 0; overflow: hidden; background: radial-gradient(ellipse 80% 55% at 50% 22%, #fff 0 45%, #eee 70%, #d9d9d9); }
.floor { position: absolute; left: -50%; right: -50%; top: 30%; height: 140%; transform: perspective(500px) rotateX(58deg); transform-origin: top;
  background: repeating-conic-gradient(#cfcfcf 0 25%, #f4f4f4 0 50%) 0 0 / 80px 80px;
  -webkit-mask: linear-gradient(transparent, #000 25%); mask: linear-gradient(transparent, #000 25%); }
.floor::after { content: ''; position: absolute; inset: 0; background: radial-gradient(#ff5a2a33, transparent 60%); }
#hero { position: absolute; left: 50%; top: 52%; width: min(70vh, 640px); transform: translate(-50%, -50%); image-rendering: pixelated; filter: drop-shadow(0 30px 25px #0005); }
.rominfo { position: absolute; top: 4px; left: 6px; font: 12px Consolas, monospace; color: #333; text-shadow: 1px 1px #fff; }
.rominfo.err { color: #c0201a; }
.biglogo { position: absolute; top: max(14px, calc(25% - 105px)); left: 50%; transform: translateX(-50%); font: 900 46px/1 Consolas, monospace; letter-spacing: 2px; text-shadow: 3px 3px 0 #0006; white-space: nowrap; }
/* logo + version à la même place sur tous les écrans d'accueil (connexion, serveur, personnage) : au milieu du vide au-dessus de la fenêtre du personnage (bord haut ~ 50% - 98 px, logo ~112 px), sa demande du 2026-11-13 */
.biglogo .p { color: #fff; -webkit-text-stroke: 1px #555; }
.biglogo .f { color: #ff7a2f; -webkit-text-stroke: 1px #7a2a08; }
.biglogo .m { color: #f0e060; -webkit-text-stroke: 1px #7a6a10; font-size: 60px; }
.loginbox { position: absolute; left: 50%; top: 52%; transform: translate(-50%, -50%); width: 300px; background: #3a4048e8; border: 1px solid #5a6470; border-radius: 4px; box-shadow: 0 6px 20px #0006; }
.lbHead { background: linear-gradient(#56616e, #434c57); color: #fff; font-weight: bold; font-size: 13px; padding: 9px 12px; border-bottom: 1px solid #2a3038; }
.lbBody { padding: 12px 14px; display: grid; gap: 9px; color: #e8e8e8; font-size: 13px; }
.lbBody > label { display: grid; grid-template-columns: 88px 1fr; align-items: center; }
.lbBody input:not([type=checkbox]) { background: #2a2f36; border: 1px solid #555f6b; border-radius: 3px; padding: 5px 6px; color: #fff; }
.lbBody input:focus { outline: none; border-color: #4a90e2; }
.lbRow { display: flex; align-items: center; gap: 8px; }
#userSel { background: #2a2f36; border: 1px solid #555f6b; border-radius: 3px; padding: 5px 6px; color: #fff; text-align: center; min-width: 0; }
#userSel:focus { outline: none; border-color: #4a90e2; }
#pass:disabled::placeholder { color: #aab2bb; }
#btnForget { flex: 1; white-space: nowrap; font-size: 11px; padding-left: 4px; padding-right: 4px; }
.remember { display: flex; gap: 6px; align-items: center; flex: 1; font-size: 12px; }
.remember input { width: auto; }
.gbtn { background: linear-gradient(#56616e, #3d454f); border: 1px solid #2a3038; border-radius: 3px; color: #fff; font-size: 12px; padding: 5px 10px; }
#authMsg { min-height: 16px; color: #ff9b8b; font-size: 12px; }
#authMsg.ok { color: #8bf0a5; }
.floor, #hero, .biglogo, .rominfo { pointer-events: none; }
/* fond 3D (title3d.js) : remplace le sol et le sprite quand le modèle est chargé */
#bg3d, #bg3dFade { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
#bg3dFade { background: #000; opacity: 1; }
#auth.has3d .rominfo { color: #ddd; text-shadow: 1px 1px 0 #000; }
#auth.has3d .floor, #auth.has3d #hero { display: none; }
/* ciel animé (titlesky.js) : remplace le Dracaufeu 3D, les fenêtres restent au-dessus */
#bgSky { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
#auth.hasSky .floor, #auth.hasSky #hero { display: none; }
#auth.hasSky .rominfo { color: #fff; text-shadow: 1px 1px 0 #0008; }
.loginbox, .news, .sidebtns { z-index: 10; }
.lbHead { display: flex; justify-content: space-between; align-items: center; }
.gbtn.back { padding: 2px 8px; font-weight: normal; }
.choice { gap: 10px; padding: 18px; }
.gbtn.big { font-size: 15px; padding: 11px; }
.charbox { width: 660px; }
.charlist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 4px; }
.charcard { background: #2a2f36; border: 2px solid #3d454f; border-radius: 4px; padding: 8px; text-align: center; cursor: pointer; min-height: 150px; }
.charcard:hover { border-color: #5a6470; }
.charcard.sel { border-color: #4a90e2; background: #2e3640; }
.charcard.empty { color: #777; display: grid; place-items: center; cursor: default; }
.charcard b { display: block; margin-bottom: 4px; }
.charcard small { color: #aaa; display: block; margin-top: 4px; font-size: 11px; }
.charcard canvas, .skin canvas { image-rendering: pixelated; }
.gbtn.wide { width: 100%; padding: 8px; font-weight: bold; }
.gbtn:disabled { opacity: .45; }
.errmsg { min-height: 16px; color: #ff9b8b; font-size: 12px; }
.charcard { display: grid; grid-template-rows: auto 1fr; }
.charcard .cc { display: flex; align-items: center; justify-content: center; gap: 8px; }
.creator { width: 760px; max-width: 96vw; }
.crBody { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 10px; }
.crOptions { display: grid; gap: 6px; align-content: start; }
.crOpt { display: grid; grid-template-columns: 110px 1fr 26px; gap: 6px; align-items: center; }
.crLabel { background: linear-gradient(#56616e, #434c57); border: 1px solid #2a3038; border-radius: 3px; color: #fff; font-size: 12px; text-align: center; padding: 7px 4px; }
.crOpt select, .crRow select, .crRow input { background: #3a4048; color: #fff; border: 1px solid #2a3038; border-radius: 3px; padding: 6px; font: inherit; font-size: 12px; text-align: center; width: 100%; }
.crOpt input[type=color] { width: 24px; height: 24px; padding: 0; border: 0; border-radius: 50%; background: none; cursor: pointer; }
.crRight { display: grid; grid-template-rows: auto auto 1fr auto auto; gap: 6px; }
.crRow { display: grid; grid-template-columns: 110px 1fr; gap: 6px; align-items: center; }
.crPreview { display: flex; align-items: center; justify-content: space-between; }
.crSprites { display: grid; gap: 10px; justify-items: center; }
.arrow { background: none; color: #fff; font-size: 26px; padding: 4px 10px; }
.serverbox { width: 340px; min-height: 300px; }
.serverbox table { width: 100%; text-align: center; border-spacing: 4px 10px; font-size: 13px; }
.serverbox th { font-weight: normal; }
.serverbox .gbtn { border-color: #4a90e2; }
.serverbox:not(.hidden) { display: flex; flex-direction: column; }
.serverbox .lbBody { flex: 1; display: flex; flex-direction: column; gap: 10px; }
#btnSrvRefresh { margin-top: auto; }
.srvSt i { display: inline-block; width: 9px; height: 9px; margin-right: 5px; border-radius: 50%; background: #9aa3ad; }
.srvSt.on i { background: #4cd964; box-shadow: 0 0 5px #4cd964; }
.srvSt.off i { background: #e5533d; box-shadow: 0 0 5px #e5533d; }
.srvSt.wait i { animation: srvWait .9s ease-in-out infinite alternate; }
#srvMaint { padding: 8px; text-align: center; font-size: 13px; line-height: 1.4; color: #fff; background: #c9694acc; border: 1px solid #e8987c; border-radius: 3px; }
.news { position: absolute; left: 6px; bottom: 8px; width: 310px; background: #3a4048d0; border-radius: 3px; padding: 4px; }
.newsHead { color: #fff; font-weight: bold; padding: 4px 6px; font-size: 13px; }
.newsItem { background: #2a2f36; color: #e8e8e8; margin: 4px; padding: 6px 8px; font-size: 13px; }
.sidebtns { position: absolute; right: 6px; bottom: 8px; width: 200px; display: grid; gap: 3px; }
.sidebtns .gbtn { padding: 6px; }
.sidebtns .muted { text-align: right; color: #555; }
/* état du serveur sur l'écran de connexion (comme PokeMMO : bandeau orange hors ligne, message si on tente d'entrer) */
#srvState { display: flex; align-items: center; gap: 7px; padding: 6px 8px; background: #2a2f36e8; border: 1px solid #2a3038; border-radius: 3px; color: #fff; font-size: 12px; }
#srvState i { flex: none; width: 9px; height: 9px; border-radius: 50%; background: #9aa3ad; }
#srvState.on i { background: #4cd964; box-shadow: 0 0 5px #4cd964; }
#srvState.off i { background: #e5533d; box-shadow: 0 0 5px #e5533d; }
#srvState.wait i { animation: srvWait .9s ease-in-out infinite alternate; }
@keyframes srvWait { to { opacity: .3; } }
#srvBanner { position: absolute; left: 50%; bottom: 80px; transform: translateX(-50%); z-index: 10; width: min(420px, 90vw); padding: 9px 14px; text-align: center; color: #fff; font-size: 13px; line-height: 1.45; background: #c9694acc; border: 1px solid #e8987c; border-radius: 3px; text-shadow: 0 1px 1px #0006; }
#srvToast { position: absolute; left: 50%; bottom: 96px; transform: translateX(-50%); z-index: 11; max-width: 90vw; padding: 8px 12px; color: #fff; font-size: 13px; white-space: nowrap; background: #2f3a45f2; border: 1px solid #5a6470; border-radius: 3px; box-shadow: 0 3px 12px #0008; }
#formBox.busy input, #formBox.busy select, #formBox.busy .gbtn { opacity: .55; pointer-events: none; }
#formBox.busy #btnLogin, #formBox.busy #btnRegister { opacity: 1; cursor: progress; }
/* mise à jour : barre avec une Poké Ball qui roule en bout de progression */
/* version du jeu sous les boutons de l'écran de connexion (à la place de l'adresse du serveur) */
/* version sous le logo : étiquette BÊTA + numéro affiché (version.json, champ affiche) */
#verLabel { display: flex; align-items: center; gap: 10px; width: max-content; margin: 12px auto 0; padding: 6px 14px 6px 6px; background: #000a; border: 2px solid #f6a04a; border-radius: 6px; color: #fff; -webkit-text-stroke: 0; font: 800 20px/1 Consolas, monospace; letter-spacing: 1px; text-shadow: 2px 2px 0 #000; box-shadow: 0 3px 10px #0008; }
#verLabel:empty { display: none; }
#legal { position: fixed; left: 0; right: 0; bottom: 6px; text-align: center; color: #fff9; font-size: 11px; pointer-events: none; text-shadow: 0 1px 2px #000; }
#verLabel::before { content: 'BÊTA'; padding: 4px 8px; background: linear-gradient(#ff8a3d, #e0561a); border-radius: 4px; color: #fff; font-size: 15px; text-shadow: 1px 1px 0 #7a2a08; }
#verLabel.fresh { color: #8be9a0; border-color: #4f9a62; }
#upd { z-index: 10000; }
.updBox { font-weight: 400; text-align: left; }
.updTitle { font-size: 28px; font-weight: 700; }
#updVer { font-size: 20px; color: #55617a; margin: 2px 0 22px; font-variant-numeric: tabular-nums; }
/* barre verte comme une barre de PV */
#updBar { position: relative; height: 14px; background: #2c3440; border: 2px solid #2c3440; border-radius: 8px; }
#updFill { width: 0; height: 100%; border-radius: 6px; background: linear-gradient(#8cf8b0, #4ed47a 55%, #2ca85a); }
#updBall { position: absolute; top: 50%; left: 0; width: 32px; height: 32px; margin: -16px 0 0 -16px; filter: drop-shadow(0 2px 2px #0008); }
.updNums { display: flex; justify-content: space-between; align-items: baseline; margin-top: 18px; font-size: 20px; font-variant-numeric: tabular-nums; }
.updNums b { font-size: 28px; }
#updMsg { min-height: 16px; margin-top: 6px; font-size: 20px; color: #55617a; }
#updNotice { position: fixed; top: 12px; left: 50%; transform: translateX(-50%); z-index: 31; display: flex; align-items: center; gap: 12px; padding: 7px 8px 7px 14px; color: #fff; font-size: 13px; white-space: nowrap; background: #2f3a45f2; border: 1px solid #5a6470; border-radius: 3px; box-shadow: 0 3px 12px #0008; }
.row { display: flex; gap: 8px; }
.row button { flex: 1; }

#hud { position: fixed; top: 6px; left: 8px; z-index: 5; font-size: 13px; text-shadow: 1px 1px 2px #000, 0 0 3px #000; display: grid; gap: 2px; pointer-events: none; }
#hudName { color: #fff; }
#hudTime { display: flex; align-items: center; gap: 4px; }
#hudTime svg { width: 12px; height: 12px; filter: drop-shadow(1px 1px 1px #000); }
#hudBoost { color: #ffd86b; }


#frBadge { position: absolute; top: -6px; right: -6px; background: #ffcb05; color: #000; border-radius: 9px; padding: 0 5px; font-size: 11px; }
#frBadge:empty { display: none; }

#screenWrap { position: fixed; top: 0; left: 0; right: 0; bottom: 0; display: grid; place-items: center; background: #000; }
#emu, #overlay { grid-area: 1 / 1; image-rendering: pixelated; }
#overlay { image-rendering: auto; position: relative; z-index: 1; }
#loading { grid-area: 1 / 1; color: #aaa; }
#skipCover { grid-area: 1 / 1; align-self: stretch; justify-self: stretch; background: #000; color: #ccc; display: grid; place-items: center; z-index: 2; font-size: 16px; }









.win { position: fixed; background: #1d1d1d; border: 2px solid #444; border-radius: 10px; box-shadow: 0 8px 30px #000c; z-index: 6; }
#panel { bottom: 52px; right: 8px; width: 340px; max-height: calc(100vh - 70px); overflow-y: auto; }
.winHead { display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; border-bottom: 1px solid #333; font-weight: bold; }
.x { background: none; font-size: 18px; padding: 0 6px; }
#panelBody { padding: 10px 12px; display: grid; gap: 8px; }
.item { display: flex; justify-content: space-between; align-items: center; gap: 8px; background: #262626; padding: 8px; border-radius: 8px; }
.item small { color: #999; display: block; }
.item .btns { display: flex; gap: 4px; flex-wrap: wrap; justify-content: flex-end; }
.item button { padding: 3px 8px; font-size: 12px; }
.shiny { color: #ffd86b; }
.hpbar { height: 6px; background: #333; border-radius: 3px; overflow: hidden; margin-top: 3px; width: 120px; }
.hpbar i { display: block; height: 100%; }
kbd { background: #333; border-radius: 4px; padding: 1px 6px; font-family: inherit; }

#ctx { position: fixed; background: #1d1d1d; border: 1px solid #555; border-radius: 8px; padding: 4px; display: grid; min-width: 180px; z-index: 20; }
#ctx .title { padding: 4px 8px; color: #ffcb05; font-weight: bold; }
#ctx button { background: none; text-align: left; border-radius: 4px; }
#ctx button:hover { background: #333; }

.modal { left: 50%; top: 50%; transform: translate(-50%, -50%); width: 460px; padding: 14px; z-index: 10; }
.mons { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.mon { background: #262626; padding: 10px; border-radius: 8px; flex: 1; }
.blog { background: #111; border-radius: 6px; padding: 8px; min-height: 90px; font-size: 13px; margin-bottom: 10px; }
.acts { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.tcols { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 10px 0; }
.tcols h4 { margin: 0 0 6px; }
.tline { display: flex; justify-content: space-between; align-items: center; gap: 6px; margin-bottom: 4px; font-size: 13px; }
.tline input { width: 64px; padding: 3px 5px; }

#toasts { position: fixed; top: 12px; left: 50%; transform: translateX(-50%); display: grid; gap: 6px; z-index: 30; }
.toast { background: #1d1d1d; border: 2px solid #ffcb05; border-radius: 8px; padding: 10px; display: flex; gap: 8px; align-items: center; }
.skinGrid { display: grid; grid-template-columns: repeat(auto-fill, 84px); gap: 4px; max-height: 460px; overflow-y: auto; padding: 4px; justify-content: center; }
.skinPick { width: 80px; height: 74px; display: grid; place-items: center; image-rendering: pixelated; cursor: pointer; border: 2px solid transparent; border-radius: 4px; background: #0002; }
.skinPick:hover { border-color: #fff6; }
.skinPick.sel { border-color: #ffcb05; background: #ffcb0530; }
/* skin verrouillé : grisé, cadenas, pas de clic */
.skinPick.locked { position: relative; cursor: not-allowed; filter: grayscale(1) brightness(.55); }
.skinPick.locked:hover { border-color: transparent; }
.skinPick.locked::after { content: '🔒'; position: absolute; right: 4px; bottom: 2px; font-size: 18px; filter: none; }
#crSprites canvas, .cc canvas { image-rendering: pixelated; }
.crSprites { grid-template-columns: repeat(3, auto); align-items: center; }

/* ===== Interface en jeu façon PokeMMO ===== */
#menu { position: fixed; right: 8px; bottom: 8px; display: flex; gap: 3px; z-index: 5; padding: 4px; background: linear-gradient(#cfd8e6, #9fb0c8); border: 2px solid #3b4a63; border-radius: 6px; box-shadow: 0 2px 8px #0008; }
#menu button { position: relative; display: flex; align-items: center; gap: 5px; height: 30px; padding: 0 10px; font: 600 12px "Segoe UI", sans-serif; color: #1c2638;
  background: linear-gradient(#f4f7fb, #c9d4e4); border: 1px solid #56688a; border-radius: 4px; cursor: pointer; }
#menu button:hover { background: linear-gradient(#ffffff, #dbe5f3); }
#menu button span { font-size: 15px; }
#frBadge { position: absolute; top: -6px; right: -6px; background: #e3350d; color: #fff; border-radius: 9px; font-size: 10px; padding: 0 5px; }
#frBadge:empty { display: none; }
#chat { position: fixed; left: 4px; bottom: 4px; width: 430px; z-index: 4; background: #1e2a3ccc; border: 2px solid #5b6f8f; border-radius: 6px; box-shadow: 0 2px 10px #0009; }
.chatTabs { display: flex; gap: 2px; padding: 3px 4px 0; border-bottom: 1px solid #5b6f8f; }
.chatTabs button { background: transparent; border: 0; border-bottom: 2px solid transparent; color: #c9d4e4; font: 12px "Segoe UI", sans-serif; padding: 3px 8px; cursor: pointer; }
.chatTabs button.on { color: #fff; border-bottom-color: #ffcb05; }
.chatTabs button[data-ch="crier"] { color: #ffb066; } .chatTabs button[data-ch="mp"] { color: #7ee08a; } .chatTabs button[data-ch="global"] { color: #8fd0ff; }
#chatLog { height: 150px; overflow-y: auto; font: 12px/1.45 "Segoe UI", sans-serif; padding: 4px 8px; user-select: text; text-shadow: 1px 1px 1px #000; color: #e8eef7; }
#chatLog b { color: #fff; font-weight: 600; }
#chatLog .sys { color: #ffcb05; }
#chatLog .crier { color: #ffb066; } #chatLog .mp { color: #7ee08a; } #chatLog .echange { color: #d9c2ff; } #chatLog .global { color: #8fd0ff; }
#chatLog .hidden { display: none; }
.chatRow { display: flex; gap: 4px; padding: 4px; }
.chatRow .chan, .chatRow button { background: linear-gradient(#5a7bb5, #3c5a92); border: 1px solid #22355c; border-radius: 3px; color: #fff; font-size: 12px; padding: 3px 9px; }
.chatRow input { flex: 1; padding: 3px 6px; background: #0e1520; border: 1px solid #5b6f8f; border-radius: 3px; color: #fff; }
#clock { position: fixed; top: 6px; right: 10px; z-index: 5; font: 600 13px "Segoe UI", sans-serif; color: #fff; text-shadow: 1px 1px 2px #000; }
#party { position: fixed; right: 6px; top: 50%; transform: translateY(-50%); z-index: 5; width: 62px; background: #171b23ee; border: 1px solid #3a4252; border-radius: 8px; padding: 4px; box-shadow: 0 3px 12px #0008; user-select: none; }
#party:has(#partyList:empty) { display: none; }
#partyList { display: grid; gap: 3px; }
.pmon { position: relative; height: 48px; background: linear-gradient(#2d3442, #222833); border: 1px solid #3f4859; border-radius: 6px; display: grid; place-items: center; overflow: hidden; cursor: default; touch-action: none; }
.pmon:hover { border-color: #d9c98a; }
.pmon.lead::before { content: ""; position: absolute; left: 3px; top: 3px; z-index: 1; width: 11px; height: 11px; background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='%23f4c430' stroke='%23000a' stroke-width='.8'><ellipse cx='8' cy='11' rx='3.6' ry='3'/><ellipse cx='3.4' cy='7' rx='1.5' ry='1.9'/><ellipse cx='6.2' cy='3.9' rx='1.5' ry='1.9'/><ellipse cx='9.8' cy='3.9' rx='1.5' ry='1.9'/><ellipse cx='12.6' cy='7' rx='1.5' ry='1.9'/></g></svg>") center / contain no-repeat; filter: drop-shadow(0 1px 1px #000a); } /* patte jaune : le Pokémon qui suit, comme PokeMMO */
.pmon.hole { background: none; border: 1px dashed #d9b64a; }
.pmon.hole > * { visibility: hidden; }
.pmon.ghost { position: fixed; z-index: 60; pointer-events: none; cursor: default; border-color: #d9c98a; box-shadow: 0 4px 14px #000a; }
.pmon.ghost.summon { border-color: #7fd46a; box-shadow: 0 0 0 2px #7fd46a88, 0 4px 14px #000a; } /* lâché sur la carte : il devient le compagnon */
.pmon img { width: 48px; height: 48px; image-rendering: pixelated; }
.pmon .stIc { position: absolute; right: 2px; top: 2px; width: 12px; height: 12px; z-index: 1; filter: drop-shadow(1px 1px 0 #0008); } /* statut, mêmes icônes qu'en combat */
.pmon .hp { position: absolute; left: 3px; right: 3px; bottom: 2px; height: 3px; background: #333; border-radius: 2px; }
.pmon .hp i { display: block; height: 100%; background: #4ad04a; border-radius: 2px; }
/* demande d'ami façon PokeMMO */
.mmoPrompt { position: fixed; left: 50%; top: 58%; transform: translate(-50%, -50%); z-index: 20; width: 340px; padding: 14px 14px 12px;
  background: #1d2733ee; border: 1px solid #4d6078; border-radius: 4px; box-shadow: 0 6px 24px #000a; display: grid; gap: 6px; font: 13px "Segoe UI", sans-serif; color: #e9eef5; text-align: center; }
.mpText { line-height: 1.45; margin-bottom: 2px; }
.mpTimer { height: 5px; background: #0c1219; border-radius: 3px; overflow: hidden; margin-bottom: 4px; }
.mpTimer i { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, #2f86d6, #5fb2ff); animation: mpTime 30s linear forwards; }
@keyframes mpTime { to { width: 0; } }
.mmoPrompt button { background: linear-gradient(#34465c, #263546); border: 1px solid #56708f; border-radius: 3px; color: #fff; font: 600 12px "Segoe UI", sans-serif; padding: 6px; cursor: pointer; }
.mmoPrompt button:hover { background: linear-gradient(#41597a, #2f4560); border-color: #8fb4dc; }
#chatLog b.friend { color: #6be38a; }
#chatLog .mp, #chatLog .mp b { color: #6be38a; } /* messages privés entièrement en vert */
/* bulle de dialogue façon PokeMMO, posée exactement sur la boîte de texte du jeu */
#dialog { position: fixed; z-index: 7; left: calc(var(--gx) + var(--gw) * 0.5); top: calc(var(--gy) + var(--gh) * 0.05); transform: translateX(-50%);
  width: calc(var(--gw) * 0.9); background: #fff; border-radius: calc(var(--gh) * 0.045); box-shadow: 0 2px 8px #0006; box-sizing: border-box;
  padding: calc(var(--gh) * 0.022) calc(var(--gw) * 0.05) calc(var(--gh) * 0.022) calc(var(--gw) * 0.025); font: 700 calc(var(--gh) * 0.026) / 1.45 "Segoe UI", "Noto Sans", sans-serif; color: #1a1a1a; }
#dialog::before { content: ""; position: absolute; left: 50%; bottom: calc(var(--gh) * -0.028); border: calc(var(--gh) * 0.016) solid transparent; border-top: calc(var(--gh) * 0.03) solid #fff; border-bottom: 0; transform: translateX(-50%); }
#dialog .dArrow { position: absolute; right: calc(var(--gw) * 0.015); bottom: calc(var(--gh) * 0.012); font-size: calc(var(--gh) * 0.022); color: #1a1a1a; animation: dBob 0.8s ease-in-out infinite; }
@keyframes dBob { 50% { transform: translateY(3px); } }
#dialog.hidden { display: none; }

/* ===== Fenêtres façon PokeMMO (ardoise sombre, en-têtes clairs) ===== */
#menu { background: none; border: 0; box-shadow: none; gap: 2px; }
#menu button { width: 34px; height: 34px; padding: 0; justify-content: center; font-size: 19px; background: #2b3540d9; border: 1px solid #5c6b7a; border-radius: 6px; color: #fff; filter: drop-shadow(0 1px 1px #000); }
#menu button:hover { background: #46576ae6; }
#mailBadge { position: absolute; top: -6px; right: -6px; background: #e3350d; color: #fff; border-radius: 9px; font-size: 10px; padding: 0 5px; }
#mailBadge:empty { display: none; }
#panel.win, #trade.win { background: #2f3a44f2; border: 2px solid #11181e; border-radius: 4px; box-shadow: 0 0 0 1px #6e7f8f inset, 0 10px 30px #000b; color: #e9eef2; font: 13px "Segoe UI", sans-serif; }
#panel { left: 50%; top: 50%; right: auto; bottom: auto; transform: translate(-50%, -50%); width: 560px; max-height: 80vh; overflow: hidden; display: flex; flex-direction: column; }
#panel.hidden, #trade.hidden { display: none; }
#panel[data-w=gts], #panel[data-w=shop] { width: 820px; }
#panel[data-w=pvp], #panel[data-w=guild] { width: 640px; }
.faqList details { padding: 6px 8px; border-bottom: 1px solid #ffffff14; }
.faqList summary { cursor: pointer; font-weight: 600; }
.faqList p { margin: 6px 0 2px; line-height: 1.4; }
#panelBody .skinGrid { display: flex; flex-wrap: wrap; gap: 6px; }
#chatLog .equipe b { color: #9fe8c4; }
#panel[data-w=dex] { width: 660px; }
#panel[data-w=team] { width: 760px; }
#panel .winHead, #trade .winHead { background: linear-gradient(#3e4b57, #2b353f); border-bottom: 1px solid #11181e; padding: 5px 10px; font-weight: 700; color: #fff; }
#panel .winHead .x, #trade .winHead .x { background: none; border: 0; color: #fff; font-size: 18px; padding: 0 4px; }
#panelBody { padding: 8px; display: flex; flex-direction: column; gap: 6px; overflow: hidden; flex: 1; }
#panel button:not(.x), #trade button:not(.x) { background: linear-gradient(#56636f, #3b4651); border: 1px solid #1a2229; border-radius: 3px; color: #fff; padding: 4px 10px; font: 13px "Segoe UI", sans-serif; cursor: pointer; }
#panel button:not(.x):hover, #trade button:not(.x):hover { background: linear-gradient(#677684, #48545f); }
#panel button:disabled, #trade button:disabled { opacity: .45; cursor: default; }
.mTabs { display: flex; gap: 2px; margin: 0 0 -6px 6px; z-index: 1; }
.mTabs button { border-radius: 8px 8px 0 0 !important; background: #1d252c !important; padding: 5px 18px !important; }
.mTabs button.on { background: linear-gradient(#4f5d6a, #3b4651) !important; }
.mRow { display: flex; gap: 6px; align-items: center; }
.mInput { flex: 1; background: #20282f; border: 1px solid #11181e; border-radius: 3px; color: #fff; padding: 5px 7px; font: 13px "Segoe UI", sans-serif; min-width: 0; }
textarea.mInput { resize: vertical; }
.mCheck { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.mScroll { overflow-y: auto; flex: 1; min-height: 160px; max-height: 52vh; background: #262f37; border: 1px solid #11181e; border-radius: 3px; }
.mTable { width: 100%; border-collapse: separate; border-spacing: 2px; }
.mTable th { background: linear-gradient(#4d5a67, #3a4550); padding: 6px; font-weight: 600; border-radius: 2px; position: sticky; top: 0; }
.mTable td { background: #303a43; padding: 5px 7px; border-radius: 2px; }
.mTable tr[data-ctx], .mTable tr[data-mail] { cursor: pointer; }
.mTable tr:hover td { background: #3a4651; }
.mTable tr.unread td { font-weight: 700; color: #ffcb05; }
.mTable tr.req td { background: #3e4a2f; }
.mTable .dot { color: #777; } .mTable .dot.on { color: #4cd964; }
.mailBody td { background: #232b32 !important; white-space: normal; }
.mEmpty { text-align: center; color: #c8d0d6; padding: 8px; }
.mSub { background: #3a4550; padding: 4px 8px; border-radius: 3px; }
.mFoot { text-align: center; font-size: 12px; }
.mForm { display: grid; gap: 8px; padding: 10px; background: #262f37; border-radius: 3px; }
.mForm label { display: grid; gap: 3px; }
/* sac */
/* intercalaires en trapèze, l'actif plus clair et collé au contenu ; grille d'icônes ; menu au clic ; fiche de l'objet en bas */
/* carte de dresseur */
.tCard { position: relative; width: 720px; height: 480px; margin: 0 auto; }
#tCardCv { width: 720px; height: 480px; image-rendering: pixelated; display: block; }
.tPic { position: absolute; display: grid; justify-items: center; align-items: end; }
.tPic canvas { image-rendering: pixelated; }
.tPic img.pose { height: 280px; width: auto; }
.tPic canvas.posed { width: 152px; height: 132px; }
/* pokédex */
.dexGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(46px, 1fr)); gap: 4px; overflow-y: auto; max-height: 52vh; padding: 2px; }
.dexCell { background: #262f37; border: 1px solid #11181e; border-radius: 4px; text-align: center; font-size: 11px; padding: 2px 0; }
.dexCell img { width: 36px; height: 36px; image-rendering: pixelated; filter: brightness(0); opacity: .55; display: block; margin: auto; }
.dexCell.seen img { filter: none; opacity: 1; }
.dexCell.own img { filter: none; opacity: 1; }
.dexCell.own { border-color: #4cd964; }
.dexStats { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.dexStats div { background: #262f37; padding: 4px 8px; border-bottom: 3px solid #56636f; }
/* boutique */
.shopGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 8px; align-content: start; }
.shopCard { position: relative; display: flex; gap: 10px; background: linear-gradient(#3a4651, #2b343d); border: 1px solid #11181e; border-radius: 3px; padding: 12px 10px; }
.ribbon { position: absolute; top: -2px; left: 10px; background: #e8641e; color: #fff; font: 700 11px "Segoe UI"; padding: 4px 6px 10px; clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 75%, 0 100%); }
.shopIcon { width: 70px; height: 70px; display: grid; place-items: center; font-size: 34px; border: 1px solid #11181e; border-radius: 3px; background: #262f37; margin-top: 14px; }
.shopInfo { flex: 1; display: grid; gap: 4px; text-align: center; }
/* échange */
#trade.win { left: 50%; top: 50%; transform: translate(-50%, -50%); width: 560px; padding: 0; }
.trCols { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 8px; }
.trSide { background: #262f37; border: 1px solid #11181e; border-radius: 3px; padding: 6px; display: grid; gap: 6px; }
.trName { background: linear-gradient(#4d5a67, #3a4550); text-align: center; padding: 4px; font-weight: 700; }
.trMoney { display: flex; gap: 4px; align-items: center; }
.trMoney span { margin-right: auto; }
.trMoney input { width: 90px; background: #20282f; border: 1px solid #11181e; color: #fff; padding: 3px 5px; }
.trLabel { font-weight: 600; border-bottom: 1px solid #56636f; }
.trSlots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.trSlot { height: 46px; background: #1d252c; border: 1px solid #11181e; border-radius: 3px; display: grid; place-items: center; font-size: 11px; line-height: 1.1; text-align: center; }
.trSlot[data-add], .trSlot[data-rm] { cursor: pointer; }
.trSlot[data-add]:hover { background: #2f3a44; }
.trSlot[data-add]::after { content: '+'; color: #8494a3; font-size: 18px; }
.trSlot.full { background: #33414d; }
.trWide { width: 100%; }
.trState { text-align: center; padding: 3px; background: #4a3030; border-radius: 3px; }
.trState.lock { background: #2f5a35; }
.trPick { display: flex; flex-wrap: wrap; gap: 4px; padding: 0 8px; }
.trFoot { display: flex; justify-content: center; gap: 8px; padding: 4px 8px 8px; }
/* chat redimensionnable (poignée en haut à droite) */
#chat { height: 230px; resize: none; min-width: 300px; min-height: 140px; max-width: calc(100vw - 8px); max-height: calc(100vh - 8px); /* 0.5.402 : toute la fenêtre, comme PokeMMO (vidéo « chatbox ») */ display: flex; flex-direction: column; }
#chat #chatLog { flex: 1; height: auto; min-height: 0; }
#chatGrip { position: absolute; top: 0; right: 0; width: 14px; height: 14px; cursor: nesw-resize; background: linear-gradient(45deg, transparent 50%, #8494a3 50%); z-index: 2; }

/* ===== Combat façon PokeMMO ===== */
#screenWrap { transition: transform .45s ease-in, filter .45s ease-in; }
#screenWrap.bIntro { transform: scale(.7); filter: brightness(.35); }
#screenWrap.bHide { visibility: hidden; }
#bscene { position: fixed; inset: 0; z-index: 5; display: grid; place-items: center; pointer-events: none; }
#bscene.hidden { display: none; }
.bSpect { position: absolute; top: 10px; left: 10px; right: 10px; z-index: 7; display: flex; align-items: center; justify-content: space-between; gap: 10px; pointer-events: none; }
.bSpect span { padding: 5px 10px; color: #fff; font: 600 13px "Segoe UI", sans-serif; background: #000a; border-radius: 5px; }
.bSpect button { padding: 5px 12px; color: #fff; font: 600 13px "Segoe UI", sans-serif; background: #000a; border: 1px solid #fff5; border-radius: 5px; cursor: pointer; pointer-events: auto; }
.bSpect button:hover { background: #000d; }
#bscene.gbaMode .bWin { display: none; }
#bscene.opening .bWin { animation: bOpen .7s cubic-bezier(.2, .8, .2, 1); }
@keyframes bOpen { from { transform: scale(.35); opacity: 0; filter: brightness(2); } to { transform: none; opacity: 1; } }
.bWin { pointer-events: auto; position: relative; width: min(94vw, calc(82vh * 16 / 9)); aspect-ratio: 16 / 9; overflow: hidden; box-shadow: 0 0 40px #000; image-rendering: pixelated;
  background: linear-gradient(#bdb0a6 0%, #d6cfca 18%, #f0eeec 30%, #c9c3bd 33%, #6e5c4c 35.5%, #b88a55 37%, #d3ad74 50%, #e0b77a 70%, #c9955c 100%); }
.bStage { position: absolute; inset: 0; animation: bCam 9s ease-in-out infinite alternate; transform-origin: 60% 55%; }
@keyframes bCam { to { transform: scale(1.04) translateX(-1%); } }
.bPlat { position: absolute; border-radius: 50%; background: radial-gradient(ellipse at center, #8f8781 0 54%, #c5c2c3 56% 70%, #e9e8ea 72% 86%, #7d7a7c 88% 100%); }
.foeP { left: 55%; top: 40%; width: 37%; height: 15%; }
.meP { left: -12%; top: 62%; width: 82%; height: 42%; }
.bMon { position: absolute; image-rendering: pixelated; transform-origin: 50% 100%; }
.bMon.front { left: 66%; top: 24%; width: 13%; animation: bIdle 1.1s ease-in-out infinite; }
.bMon.back { left: 20%; top: 46%; width: 24%; animation: bIdle 1.4s ease-in-out infinite; }
.bMon.ko { animation: bFaint .6s forwards; }
@keyframes bIdle { 50% { transform: translateY(-2%) scaleY(1.03); } }
@keyframes bFaint { to { transform: translateY(40%); opacity: 0; } }
.bBox { position: absolute; width: 23%; font: 600 calc(var(--bw, 1vw) * 1) "Segoe UI", sans-serif; color: #fff; text-shadow: 1px 1px 1px #000; }
.bBox.foe { left: 0; top: 7%; }
/* talent déclenché (abilityBar), mesuré pixel par pixel sur les captures PokeMMO de l'utilisateur (2026-11-10) : --bw = 1 % de la largeur du combat (posé par abilityBar).
   Nom du Pokémon en blanc au-dessus, sans fond ; barre de 1,77 bw de haut sur 29,5 % de large : dégradé horizontal (206,113,40) -> (221,148,78) -> (244,178,110),
   liseré clair en haut et en bas (plus fort à gauche), ombre foncée de 0,2 bw dessous, bout en biais de 1,2 bw (bas plus long). Mon Pokémon : à gauche, 3,2 bw
   au-dessus de la boîte de texte, pointe à droite. Ennemi : en haut à droite (9,7 %), pointe à gauche */
.bAbil { position: absolute; right: 0; top: 9.7%; z-index: 30; pointer-events: none; width: 29.5%; text-align: right; color: #f3efea;
  font: 600 calc(var(--bw, 1vw) * 1.55)/1.1 var(--mmoFont, "Noto Sans", "Segoe UI", sans-serif); letter-spacing: .07em; overflow-wrap: anywhere; white-space: normal;
  text-shadow: 0 0 1px #4a3c32, 1px 1px 1px #4a3c32b0, -1px 0 1px #4a3c3290; }
.bAbil .bAbN { padding: 0 calc(var(--bw, 1vw) * 2.4) calc(var(--bw, 1vw) * .35); min-height: 1.1em; }
.bAbil .bAbT { position: relative; z-index: 0; min-height: calc(var(--bw, 1vw) * 1.77); line-height: calc(var(--bw, 1vw) * 1.77); padding: 0 calc(var(--bw, 1vw) * 3.4) 0 calc(var(--bw, 1vw) * 2);
  filter: drop-shadow(0 calc(var(--bw, 1vw) * .2) 0 #2e1704c0); }
.bAbil .bAbT::before { content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, #f6b47ff0, #f6b47f00 80%) 0 0 / 100% calc(var(--bw, 1vw) * .22) no-repeat,
    linear-gradient(90deg, #f6b27af0, #f6b27a40 85%) 0 100% / 100% calc(var(--bw, 1vw) * .2) no-repeat,
    linear-gradient(90deg, #ce7128 0%, #dd944e 50%, #f4b26e 100%);
  clip-path: polygon(calc(var(--bw, 1vw) * 1.2) 0, 100% 0, 100% 100%, calc(var(--bw, 1vw) * .25) 100%, 0 75%); }
.bAbil.mine { right: auto; left: 0; top: auto; bottom: calc(18% + var(--bw, 1vw) * 3.2); }
.bAbil.mine .bAbT::before { background: linear-gradient(90deg, #f6b47ff0, #f6b47f00 80%) 0 0 / 100% calc(var(--bw, 1vw) * .22) no-repeat,
    linear-gradient(90deg, #f6b27af0, #f6b27a40 85%) 0 100% / 100% calc(var(--bw, 1vw) * .2) no-repeat,
    linear-gradient(90deg, #ce7128 0%, #dd944e 50%, #f4b26e 100%);
  clip-path: polygon(0 0, calc(100% - var(--bw, 1vw) * 1.2) 0, 100% 75%, calc(100% - var(--bw, 1vw) * .25) 100%, 0 100%); } /* pointe plus basse que le milieu, comme la capture */
.bAbil:not(.mine) .bAbT::before { background: linear-gradient(270deg, #f6b47ff0, #f6b47f00 80%) 0 0 / 100% calc(var(--bw, 1vw) * .22) no-repeat,
    linear-gradient(270deg, #f6b27af0, #f6b27a40 85%) 0 100% / 100% calc(var(--bw, 1vw) * .2) no-repeat,
    linear-gradient(270deg, #ce7128 0%, #dd944e 50%, #f4b26e 100%); }
.bBox.mine { right: 0; top: 70%; }
.bName { padding: 0 8px; font-size: clamp(11px, 1.1vw, 15px); }
.bName small { font-size: .9em; }
.bShiny { color: #ffd84a; font-weight: 400; text-shadow: 0 0 3px #ff9a00, 1px 1px 1px #000; }
.bShinyStar { position: absolute; z-index: 5; font-style: normal; font-size: calc(var(--bw, 1vw) * 1.8); color: #fff; text-shadow: 0 0 6px #ffd84a; pointer-events: none; }
.bHp { height: 7px; margin-top: 2px; background: #2b2b2b; border: 2px solid #f4f4f4; border-radius: 0 4px 4px 0; }
.bBox.mine .bHp { border-radius: 4px 0 0 4px; }
.bHp i { display: block; height: 100%; transition: width .6s; }
.bNums { text-align: center; font-size: clamp(11px, 1vw, 14px); margin-top: 2px; }
.bBar { position: absolute; left: 0; right: 0; bottom: 0; height: 18%; background: #3d3d3dd9; display: flex; gap: 12px; align-items: stretch; padding: 6px; box-sizing: border-box; }
.bText { flex: 1; color: #fff; font: 600 clamp(13px, 1.5vw, 20px)/1.4 "Courier New", monospace; letter-spacing: .04em; padding: 4px 10px; text-shadow: 1px 1px 0 #000; }
.bText span { text-shadow: none; }
.bActs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; width: 30%; }
.bActs.yn { width: 22%; }
.bActs button, .bBack, .bGba { background: linear-gradient(#8b8b8b, #6c6c6c); border: 1px solid #2a2a2a; color: #fff; border-radius: 2px; cursor: pointer; display: grid; place-content: center; text-align: center; padding: 2px; font: 12px "Segoe UI", sans-serif; }
.bActs button b { font-size: 13px; letter-spacing: .04em; } .bActs button small { font-size: 11px; opacity: .9; }
.bActs button:hover, .bBack:hover { background: linear-gradient(#a0a0a0, #7c7c7c); box-shadow: 0 0 0 2px #d8c860 inset; }
.bBack { width: 80px; }
.bGba { pointer-events: auto; position: fixed; top: 8px; right: 50%; transform: translateX(50%); padding: 4px 12px; opacity: .8; }
/* sprites Noire / Blanche (96 px) + effets de combat */
.bActsWrap { display: contents; }
.bMon.front.bw { left: 61%; top: 20%; width: 20%; }
.bMon.back.bw { left: 12%; top: 33%; width: 38%; }
.bMon.enter { animation: bEnter .6s ease-out, bIdle 1.2s ease-in-out .6s infinite; }
@keyframes bEnter { 0% { transform: scale(0); filter: brightness(4); } 70% { transform: scale(1.08); filter: brightness(2); } 100% { transform: none; filter: none; } }
.bMon.hit { animation: bHit .7s steps(1), bIdle 1.2s ease-in-out .7s infinite; }
@keyframes bHit { 0%, 30%, 60% { opacity: .15; } 15%, 45%, 75%, 100% { opacity: 1; } 10% { transform: translateX(-3%); } 20% { transform: translateX(3%); } }
.bMon.front.lunge { animation: bLungeF .45s ease-in-out, bIdle 1.2s ease-in-out .45s infinite; }
.bMon.back.lunge { animation: bLungeB .45s ease-in-out, bIdle 1.2s ease-in-out .45s infinite; }
@keyframes bLungeF { 40% { transform: translate(-14%, 10%) scale(1.06); } }
@keyframes bLungeB { 40% { transform: translate(14%, -8%) scale(1.04); } }
.bMon.ko { animation: bFaint .6s forwards !important; }
.bName .mal { color: #6cb4ff; } .bName .fem { color: #ff8fb4; }
.bXp { height: 4px; margin: 3px 12% 0; background: #2b2b2b; border: 1px solid #f4f4f4; }
.bXp i { display: block; height: 100%; background: #4fb6ff; transition: width .6s; }
.bDots { display: flex; gap: 6px; padding: 5px 8px; }
.bBox.mine .bDots { justify-content: flex-end; }
.bDots i { width: 9px; height: 9px; border-radius: 50%; background: #5a5a5a88; }
.bDots i.ok { background: radial-gradient(circle at 35% 35%, #fff, #e33 60%); }
.bDots i.ko { background: #222; box-shadow: 0 0 0 1px #888; }
.bDots img { width: calc(var(--bw, 1vw) * 2); height: calc(var(--bw, 1vw) * 2); object-fit: contain; image-rendering: pixelated; filter: drop-shadow(0 1px 1px #000a); }
.bDots .dotSt { position: relative; display: inline-flex; }
.bDots .dotSt .stIc { position: absolute; right: -25%; top: -15%; width: 55%; height: 55%; filter: drop-shadow(1px 1px 0 #0008); }
.bDots img.ko { filter: brightness(0) opacity(.75); }
.bDots i.unk { align-self: center; width: calc(var(--bw, 1vw) * 1.1); height: calc(var(--bw, 1vw) * 1.1); margin: 0 calc(var(--bw, 1vw) * .45); background: #1a1f2699; box-shadow: none; }
/* sous la barre, sur le décor ; au K.O. seuls les petits sprites restent */
.bBox .bDots { position: absolute; left: 0; right: 0; top: 100%; margin-top: calc(var(--bw, 1vw) * .5); padding: 0 4%; align-items: center; justify-content: space-between; }
.bBox.mine .bXp { position: absolute; left: 14%; right: 14%; top: 100%; margin: calc(var(--bw, 1vw) * .35) 0 0; }
.bBox.mine .bDots { margin-top: calc(var(--bw, 1vw) * 1.1); }
.bBox.koBar > :not(.bDots) { visibility: hidden; }
body.mmo .bBox.koBar { background: none !important; }
.bBox.bNoMon { visibility: hidden; }
.bWin .bBox.mine { top: 63%; }

/* ===== Thème repris de PokeMMO (data/themes/default : couleurs et polices uniquement, aucune image copiée) ===== */
:root { --mmoFont: "Noto Sans", "Segoe UI", sans-serif; }
body, #panel.win, #trade.win, #chat, .bBar, .bActs button { font-family: var(--mmoFont); }
#panel.win, #trade.win { background: linear-gradient(#7d8c96, #4f5b63 40%, #3f4950); border: 1px solid #0d1114; border-radius: 6px; box-shadow: 0 0 0 1px #a9b6bf inset, 0 8px 26px #000c; }
#panel .winHead, #trade .winHead { background: linear-gradient(#c9ced2, #9ea6ac); color: #1b2227; text-shadow: 0 1px #fff8; border-bottom: 1px solid #1a2026; border-radius: 5px 5px 0 0; }
#panel .winHead .x, #trade .winHead .x { color: #1b2227; }
#panel button:not(.x), #trade button:not(.x) { background: linear-gradient(#5c6873, #3a434c 55%, #2c333a); border: 1px solid #0f1418; border-radius: 4px; box-shadow: 0 1px 0 #9aa6b0 inset; text-shadow: 0 1px #000; }
#panel button:not(.x):hover, #trade button:not(.x):hover { background: linear-gradient(#6f7d8a, #48535d 55%, #343c44); box-shadow: 0 0 0 1px #e8c84a inset; }
#chat { background: #222222e6; border: 1px solid #0b0b0b; border-radius: 4px; }
#chat .tabs, #chat .chatTabs { background: linear-gradient(#9a9a9a, #7a7a7a); }
#dialog { background: #fff; border-radius: 14px; box-shadow: 0 2px 6px #0008, 0 0 0 1px #8888 inset; }
.bBar { background: linear-gradient(#56626b, #2f373e); border-top: 1px solid #a3adb5; }
.bActs button, .bBack, .bGba { background: linear-gradient(#9b9b9b, #7d7d7d 50%, #6a6a6a); border: 1px solid #1d1d1d; border-radius: 3px; box-shadow: 0 1px 0 #d0d0d0 inset; text-shadow: 0 1px #000a; }
.bActs button:hover, .bBack:hover { background: repeating-linear-gradient(45deg, #9b9b9b 0 3px, #8a8a8a 3px 6px); box-shadow: 0 0 0 2px #e8c84a inset; }
.bBox { background: linear-gradient(#f4f4f4, #d6d6d6); color: #1a1a1a; border: 1px solid #333; border-radius: 4px; box-shadow: 0 2px 4px #0007; }

/* images de l'installation PokeMMO du joueur (body.mmo seulement si trouvée) */
body.mmo #dialog { background: none; box-shadow: none; border: 18px solid transparent; border-image: url(/mmo/res/chat-dialog.png) 22 fill stretch; }
body.mmo #dialog::before { display: none; }
/* zones découpées dans battle-hud.png / main-hud.png / text-bubble.png (coordonnées de gfx.xml) */
body.mmo #dialog { border: 14px solid transparent; border-image: url(/mmo/res/text-bubble.png) 63 fill / 14px stretch; }
body.mmo .bActs button { background: url("/mmocrop?f=res/battle-hud.png&r=321,145,96,30") 0 0 / 100% 100%; border: 0; box-shadow: none; color: #fff; }
body.mmo .bActs button:hover { background-image: url("/mmocrop?f=res/battle-hud.png&r=321,176,96,30"); box-shadow: none; }
body.mmo .bBack { background: url("/mmocrop?f=res/battle-hud.png&r=218,145,96,30") 0 0 / 100% 100%; border: 0; box-shadow: none; }
body.mmo .bBack:hover { background-image: url("/mmocrop?f=res/battle-hud.png&r=218,176,96,30"); }
body.mmo .bBox { background: none; border: 0; box-shadow: none; color: #fff; text-shadow: 1px 1px 1px #000; }
body.mmo .bBox.foe { background: url("/mmocrop?f=res/battle-hud.png&r=0,43,306,20") 0 100% / 100% calc(var(--bw, 1vw) * 1) no-repeat; padding-bottom: calc(var(--bw, 1vw) * .45); }
body.mmo .bBox.mine { background: url("/mmocrop?f=res/battle-hud.png&r=0,71,298,33") 0 100% / 100% calc(var(--bw, 1vw) * 2.05) no-repeat; padding-bottom: calc(var(--bw, 1vw) * .3); }
/* la barre de vie est posée dans la partie hachurée du cadre, comme PokeMMO */
body.mmo .bBox .bHp { margin-left: 14%; margin-right: 14%; }
body.mmo .bBox .bName { padding-left: 14%; }
body.mmo .bHp { border: 0; border-radius: 0; background: none; border-style: solid; border-width: 0 2px; border-image: url("/mmocrop?f=res/battle-hud.png&r=35,8,13,6") 0 2 fill / 0 2px stretch; padding: 1px 0; }
body.mmo #panel button:not(.x), body.mmo #trade button:not(.x) { background: none; box-shadow: none; border: solid transparent; border-width: 6px 5px 8px; padding: 0 6px; border-image: url("/mmocrop?f=res/main-hud.png&r=227,9,66,30") 6 5 8 fill stretch; }
body.mmo #panel button:not(.x):hover, body.mmo #trade button:not(.x):hover { border-image-source: url("/mmocrop?f=res/main-hud.png&r=227,40,66,30"); background: none; box-shadow: none; }
body.mmo .bBack { aspect-ratio: 96 / 30; align-self: center; height: auto; width: 14%; }
/* combat plus proche de PokeMMO : sprites plus petits posés sur les plateformes, cartes d'attaque */
.bMon.front.bw { left: 70%; top: 27%; width: 14%; }
.bMon.back.bw { left: 14%; top: 47%; width: 31%; }
.bStage { background: linear-gradient(#cfd8de 0%, #9fc3d8 14%, #e9e6df 30%, #b49a78 44%, #d9b383 60%, #e6c597 100%); }
.bActs.mv { width: 58%; grid-template-columns: 1fr 1fr; grid-auto-rows: 1fr; gap: 4px; }
.bActs.mv .mCard, body.mmo .bActs.mv .mCard { display: grid; grid-template-columns: 1fr auto; grid-template-rows: 1fr 1fr; align-items: center; gap: 2px 6px; padding: 3px 7px; text-align: left; place-content: stretch;
  background: linear-gradient(#3e464e, #2a3037); border: 1px solid #12161a; border-radius: 3px; box-shadow: 0 1px 0 #5c6670 inset; color: #fff; }
.bActs.mv .mCard:hover, body.mmo .bActs.mv .mCard:hover { background: linear-gradient(#4a535c, #323940); box-shadow: 0 0 0 2px #e8c84a inset; }
.mCard .mN { font-weight: 700; font-size: calc(var(--bw, 1vw) * 1.05); }
.mCard .mT { justify-self: end; font-size: calc(var(--bw, 1vw) * .7); padding: 0 8px; border-radius: 3px; border: 1px solid #0006; text-shadow: 0 1px #0008; }
.mCard .mE { justify-self: start; font-size: calc(var(--bw, 1vw) * .7); padding: 0 10px; border-radius: 2px; }
.mCard .mP { justify-self: end; font-size: calc(var(--bw, 1vw) * .8); }
body.mmo .bBar { background: url("/mmocrop?f=res/battle-hud.png&r=6,312,800,115") 0 0 / 100% 100%; opacity: .95; }
.bMon.front.bw { left: 66.5%; } .bMon.back.bw { top: 43%; } .bBar .bBack { margin-left: auto; align-self: flex-end; width: 11%; }
.bActs.mv .mCard.empty { opacity: .55; cursor: default; }
/* décor 3D de Pokémon Noire (rendu depuis la ROM) : plateformes incluses dans l'image */
.bWin.bw3d .bStage { background-size: cover; background-position: center; background-blend-mode: multiply; image-rendering: pixelated; }
.bWin.bw3d .bPlat { display: none; }
/* 2026-11-15, caméra libre (battlecam.js) : le décor 3D est dessiné en direct dans ce canevas, sous tout le reste de la scène (.bStage forme déjà son propre calque : will-change) ;
   il couvre l'image du décor et son bas, comme le ::before des images fixes, qui ne sert plus alors */
.bStage > .bCamCv { position: absolute; z-index: -1; pointer-events: none; image-rendering: auto; }
.bWin.bw3d .bStage.camGl::before { display: none; }
.bWin.bw3d .bMon.front.bw { left: 58.5%; top: 35%; width: 14%; }
.bWin.bw3d .bMon.back.bw { left: 9.5%; top: 50%; width: 31%; }
.bWin.bw3d .bMon.front.bw { top: 41%; } .bBar .bText { font-family: var(--mmoFont, "Noto Sans", "Segoe UI", sans-serif); font-weight: 600; }
/* combat façon PokeMMO : fenêtre plus petite, carte assombrie autour, barre de texte translucide */
.bWin { width: min(74vw, calc(70vh * 16 / 9)); }
#bscene:not(.hidden):not(.gbaMode) { background: linear-gradient(#0008, #0008), var(--map) center / cover no-repeat; image-rendering: pixelated; }
#screenWrap.bHide { visibility: hidden; }
@font-face { font-family: "MmoBattle"; src: url(police/battle.ttf), url(/mmo/res/fonts/battle.ttf); } /* police du combat de PokeMMO livrée avec le jeu (2026-11-13) : tous les joueurs l'ont, même sans PokeMMO installé */
@font-face { font-family: "MmoName"; src: url(fonts/NotoSans-Medium.ttf); }
.bBar, body.mmo .bBar { background: #2e2e2eb8; border: 0; opacity: 1; }
.bBar .bText { font-family: "MmoBattle", "Noto Sans", monospace; font-weight: 400; color: #fff; text-shadow: 1px 1px 0 #000; font-size: calc(var(--bw, 1vw) * 1.6); letter-spacing: .03em; }
.bXp i { transition: width 1.2s linear; }
.bHp i { transition: width .8s ease-out; }
/* entrée en combat façon PokeMMO : flash blanc, carte figée assombrie, petite fenêtre qui s'agrandit en 1 s */
#bscene:not(.hidden):not(.gbaMode) { background: linear-gradient(#0009, #0009), var(--map) var(--gx, 0) var(--gy, 0) / var(--gw, 100vw) var(--gh, 100vh) no-repeat, #000; image-rendering: pixelated; }
#bscene.pre .bWin { visibility: hidden; }
#bscene.flash::after { content: ""; position: fixed; inset: 0; background: #fff; pointer-events: none; animation: bFlash .5s ease-out forwards; }
@keyframes bFlash { from { opacity: .95; } to { opacity: 0; } }
#bscene.opening .bWin { animation: bOpen 1s cubic-bezier(.2, .8, .2, 1) both; }
@keyframes bOpen { from { transform: scale(.15); opacity: .6; } to { transform: none; opacity: 1; } }
#chat { z-index: 6; }

#wideMap { position: absolute; inset: 0; image-rendering: pixelated; pointer-events: none; }
#fmBand { position: absolute; inset: 0; z-index: 3; pointer-events: none; } /* bandeau des capacités hors combat (Surf…), par-dessus les joueurs */
#emu { position: relative; z-index: 1; }
#overlay { left: 0 !important; top: 0 !important; z-index: 2; }

#bscene:not(.hidden):not(.gbaMode) { background: linear-gradient(#0009, #0009), var(--map) 0 0 / 100% 100% no-repeat, #000; }
#bscene.flash::after { animation: bFlash2 .8s ease-in-out forwards; }
@keyframes bFlash2 { 0% { opacity: 0; } 35% { opacity: .85; } 100% { opacity: 0; } }
/* entrée en combat façon PokeMMO : flash blanc plein écran, carte qui s'assombrit, petite fenêtre qui s'agrandit */
#bscene:not(.hidden):not(.gbaMode) { background: var(--map) 0 0 / 100% 100% no-repeat, #000; }
#bscene:not(.hidden):not(.gbaMode)::before { content: ""; position: fixed; inset: 0; background: #000; opacity: .55; pointer-events: none; }
#bscene.pre::before { opacity: 0; animation: bDim .6s ease-in 1s forwards; }
@keyframes bDim { to { opacity: .55; } }
#bscene.flash::after { z-index: 3; animation: bFlash3 1s ease-in-out forwards; }
@keyframes bFlash3 { 0% { opacity: 0; } 30% { opacity: .92; } 100% { opacity: 0; } }
#bscene .bWin { z-index: 1; }
#bscene.opening .bWin { animation: bOpen 1s cubic-bezier(.2, .8, .2, 1) both; }
/* dans la fenêtre : le Pokémon sauvage arrive, puis le mien sort de sa Poké Ball */
#bscene.opening .bFoe img, #bscene.opening .bFoe .bSpr { animation: foeIn .6s ease-out .5s both; }
#bscene.opening .bMine img, #bscene.opening .bMine .bSpr { animation: mineOut .45s cubic-bezier(.3, 1.6, .5, 1) 1.1s both; transform-origin: 50% 100%; }
@keyframes foeIn { from { transform: translateX(60%); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes mineOut { 0% { transform: scale(0); filter: brightness(3); opacity: 0; } 60% { filter: brightness(2); opacity: 1; } 100% { transform: none; filter: none; } }
/* entrée en combat façon PokeMMO : flash blanc plein écran, carte qui s'assombrit, petite fenêtre qui s'agrandit */
#bscene:not(.hidden):not(.gbaMode) { background: var(--map) 0 0 / 100% 100% no-repeat, #000; }
#bscene:not(.hidden):not(.gbaMode)::before { content: ""; position: fixed; inset: 0; background: #000; opacity: .55; pointer-events: none; }
#bscene.pre::before { opacity: 0; animation: bDim .6s ease-in 1s forwards; }
@keyframes bDim { to { opacity: .55; } }
#bscene.flash::after { z-index: 3; animation: bFlash3 1s ease-in-out forwards; }
@keyframes bFlash3 { 0% { opacity: 0; } 30% { opacity: .92; } 100% { opacity: 0; } }
#bscene .bWin { z-index: 1; }
#bscene.opening .bWin { animation: bOpen .9s cubic-bezier(.2, .8, .2, 1) both; }
/* dans la fenêtre : le Pokémon sauvage arrive, puis Poké Ball lancée et mon Pokémon en sort */
#bscene.opening .bMon.front { animation: foeIn .6s ease-out .5s both !important; }
#bscene.opening .bMon.back { animation: mineOut .45s cubic-bezier(.3, 1.6, .5, 1) 1.25s both !important; }
#bscene.opening .bStage::after { content: ""; position: absolute; left: 4%; top: 70%; width: 2.2%; aspect-ratio: 1; border-radius: 50%; z-index: 2;
  background: linear-gradient(#e33 0 46%, #222 46% 54%, #fff 54%); box-shadow: 0 0 0 2px #222; animation: ballThrow .5s ease-out .8s both; }
@keyframes ballThrow { 0% { transform: translate(0, 0) rotate(0); opacity: 1; } 50% { transform: translate(450%, -500%) rotate(360deg); opacity: 1; }
  99% { transform: translate(900%, -100%) rotate(720deg); opacity: 1; } 100% { opacity: 0; } }
@keyframes foeIn { from { transform: translateX(60%); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes mineOut { 0% { transform: scale(0); filter: brightness(4); opacity: 0; } 60% { filter: brightness(2); opacity: 1; } 100% { transform: none; filter: none; opacity: 1; } }
/* bulle de dialogue façon PokeMMO : tout en haut de la fenêtre, pointe vers celui qui parle (PNJ, panneau) */
#dialog { left: 50%; top: 2.5vh; width: min(62vw, 980px); transform: translateX(-50%); min-height: 12vh; padding: 2.2vh 3vw 3vh 2.4vw;
  font: 700 clamp(15px, 2.3vh, 28px) / 1.45 "Segoe UI", "Noto Sans", sans-serif; border-radius: 4.5vh; }
#dialog::before { display: none; }
#dialog .dArrow { right: 2.2vw; bottom: 1.8vh; font-size: clamp(12px, 2vh, 24px); }
#dialogTail { position: fixed; inset: 0; width: 100vw; height: 100vh; z-index: 6; pointer-events: none; filter: drop-shadow(0 1px 2px #0005); }
#dialogTail.hidden { display: none; }
/* la boîte de texte du jeu disparaît pendant la bulle : la carte large redessinée prend sa place */
body.talking #emu { clip-path: inset(0 0 30% 0); }
/* ===== entrée en combat façon Pokémon Noire : gros plan sur le Pokémon sauvage, puis lancer de Poké Ball par le dresseur ===== */
#bscene.opening .bMon.front, #bscene.opening .bMon.back { animation: bIdle 1.2s ease-in-out infinite !important; }
#bscene.opening .bStage::after { display: none; }
.bWin .bStage { transition: transform 2.2s cubic-bezier(.4, 0, .25, 1); }
.bWin.iZoom .bStage { animation: none; transform: scale(2.3); transform-origin: 66% 47%; transition: none; }
.bWin.iZoom .bBox, .bWin.iHideMe .bBox.mine, .bWin.iSendBox .bBox.mine { opacity: 0; }
.bBox { transition: opacity .4s; }
.bWin.iHideMe .bMon.back { visibility: hidden !important; }
/* montée de niveau façon PokeMMO (lvlFx) : anneaux bleus qui grandissent, points turquoise */
.bLvFx { position: absolute; width: 40%; aspect-ratio: 1; translate: -50% -50%; pointer-events: none; z-index: 4; }
.bLvFx b { position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle, #3540ff00 0 30%, #4a55ffd0 34% 41%, #2f36ecb0 41% 47%, #4d58ffd0 47% 54%, #2f36ecb0 54% 60%, #4a55ffc8 60% 66%, #3540ff70 68%, #3540ff00 71%); animation: bLvRing .44s ease-out forwards; }
.bLvFx i { position: absolute; left: 50%; top: 50%; width: 3.4%; aspect-ratio: 1; margin: -1.7% 0 0 -1.7%; border-radius: 50%; background: #47e6cf; box-shadow: 0 0 .45em .1em #35d9c2aa; opacity: 0; }
/* baisse d'une statistique façon PokeMMO (statDownFx) : points bleu clair, ronds et doux, qui tombent sur le Pokémon */
.bStFx { position: absolute; width: 0; height: 0; pointer-events: none; z-index: 4; }
.bStFx i { position: absolute; left: 0; top: 0; margin: 0; border-radius: 50%; background: radial-gradient(circle, #7fd6ff 0 30%, #3fa8eacc 58%, #3fa8ea00 100%); opacity: 0; }
@keyframes bLvRing { 0% { scale: .14; opacity: .95; } 82% { scale: 1; opacity: .92; } 100% { scale: 1.03; opacity: 0; } }
/* envoi façon PokeMMO (sendOutMon) : le Pokémon blanc est visible avant sa barre de PV ; Ball blanche ; nuage clair en l'air */
.bWin.iHideMe .bMon.back.sendOut { visibility: visible !important; }
.bMon.back.sendOut { animation: none !important; }
.bBall.fly.white i { animation-play-state: paused; }
/* bulle blanche de la sortie (vidéo « je veux sa battle exemple ») : disque laiteux, plus clair au centre (+30 à +40 de luminosité en moyenne sur le décor),
   bord flou, petites bulles plus claires autour ; grossit (ease-out) jusqu'à 78 % du temps, tient, puis s'efface en 0,1 s */
.bBulle { position: absolute; aspect-ratio: 1; translate: -50% -50%; z-index: 4; pointer-events: none; border-radius: 50%;
  background: radial-gradient(circle, #fffffcd0 0, #fffff6b8 30%, #fbf8ec8e 52%, #f8f4e65c 68%, #f5f0e228 84%, #f5f0e200 100%); /* plus dense que la mesure brute : notre décor (ciel, herbe) est plus clair que celui de la vidéo */ filter: blur(.6px);
  animation: bBulle var(--d, .6s) linear forwards; }
.bBulle i { position: absolute; width: 7%; aspect-ratio: 1; border-radius: 50%; translate: -50% -50%; background: radial-gradient(circle, #fffe 0, #fffa 45%, #fff0 72%); opacity: .8; }
.bBulle i:nth-child(1) { left: 6%; top: 34%; } .bBulle i:nth-child(2) { left: 24%; top: 4%; width: 9%; } .bBulle i:nth-child(3) { left: 71%; top: 3%; width: 6%; }
.bBulle i:nth-child(4) { left: 95%; top: 30%; width: 8%; } .bBulle i:nth-child(5) { left: 90%; top: 74%; width: 6%; } .bBulle i:nth-child(6) { left: 14%; top: 78%; width: 8%; }
.bBulle i:nth-child(7) { left: 52%; top: 98%; width: 5%; }
/* bulle de la sortie de mon Pokémon (sendPuff, vidéo pixelmon.mp4) : disque uni à gros pixels + petites bulles, tout est animé image par image dans app.js */
.bNuage { position: absolute; aspect-ratio: 1; translate: -50% -50%; z-index: 4; pointer-events: none; }
.bNuage b { position: absolute; inset: 0; background-size: 100% 100%; image-rendering: pixelated; opacity: 0; }
.bNuage i { position: absolute; width: 5.3%; aspect-ratio: 1; border-radius: 50%; translate: -50% -50%; background: radial-gradient(circle, #fffd 0, #fffb 55%, #fff0 78%); opacity: 0; }
@keyframes bBulle { 0% { scale: .17; opacity: .75; animation-timing-function: cubic-bezier(.3, .6, .5, 1); } 78% { scale: 1; opacity: 1; } 84% { scale: 1; opacity: 1; } 100% { scale: 1.03; opacity: 0; } }
/* Sacha (sprite de dos de Rouge Feu, 5 images) posé sur la barre de texte comme sur GBA, sur sa plateforme */
.bTrainer { position: absolute; left: 3%; bottom: 18%; height: 48%; aspect-ratio: 1; z-index: 3; image-rendering: pixelated;
  background: 0 0 / 500% 100% no-repeat; transform-origin: 50% 100%; opacity: 0; transform: translateX(-70%);
  transition: transform .3s cubic-bezier(.2, .7, .3, 1), opacity .12s; filter: drop-shadow(0 3px 4px #0007); }
.bTrainer.in { opacity: 1; transform: none; }
.bTrainer.leave { animation: trLeave .75s cubic-bezier(.5, 0, .9, .6) forwards; }
/* planche de lancer du skin (dessin en pied, comme PokeMMO) : sur sa plateforme, jambes derrière la barre de texte */
.bTrainer.full { left: 17%; bottom: 1%; height: 56%; image-rendering: auto; }
.bTrainer .bBall.held { width: 7.5%; translate: -50% -50%; opacity: 1; z-index: 1; }
.bWin .bBar { z-index: 6; }
@keyframes trLeave { from { transform: none; } to { transform: translateX(-175%); } }
/* Poké Ball : avance en ligne droite (x) pendant que l'élément intérieur fait la cloche (y) et tourne */
.bBall { position: absolute; left: 26%; top: 48%; width: 3%; aspect-ratio: 1; z-index: 4; opacity: 0; }
.bBall i { display: block; width: 100%; height: 100%; border-radius: 50%; box-shadow: 0 0 0 .18em #1b1b1b, 0 2px 4px #0008;
  background: radial-gradient(circle, #fff 0 14%, #1b1b1b 15% 24%, transparent 25%), linear-gradient(#f23a2f 0 44%, #1b1b1b 44% 56%, #f4f4f4 56%); }
.bBall.go { animation: ballX .65s linear forwards; }
.bBall.go i { animation: ballY .65s cubic-bezier(.3, 0, .7, 1) forwards; }
@keyframes ballX { 0% { opacity: 1; transform: translateX(0); } 98% { opacity: 1; } 100% { opacity: 0; transform: translateX(-20%); } }
@keyframes ballY { 0% { transform: translateY(0) rotate(0); } 45% { transform: translateY(-520%) rotate(-420deg); } 100% { transform: translateY(260%) rotate(-900deg); } }
/* ouverture : éclair blanc et anneau lumineux à l'endroit où mon Pokémon apparaît */
.bBurst { position: absolute; left: 27%; top: 66%; width: 4%; aspect-ratio: 1; z-index: 4; border-radius: 50%; translate: -50% -50%; opacity: 0; pointer-events: none; }
.bBurst.go { animation: burst .55s ease-out forwards; background: radial-gradient(circle, #fff 0 35%, #fff8 50%, transparent 70%); box-shadow: 0 0 0 3px #fff, 0 0 30px 12px #ffe; }
@keyframes burst { 0% { opacity: 1; transform: scale(.3); } 60% { opacity: 1; } 100% { opacity: 0; transform: scale(7); } }
.bWin.iIntro .bStage { animation: none; transform-origin: 66% 47%; }
/* ===== Poké Ball façon Pokémon Noire : arc, arrêt en l'air, ouverture en deux, rayons + étincelles, Pokémon qui grandit en blanc ===== */
.bBall { left: 24%; top: 46%; width: 3.2%; }
.bBall i { position: relative; overflow: visible; background: none; box-shadow: none; }
.bBall b { position: absolute; left: 0; right: 0; height: 50%; box-shadow: 0 0 0 .16em #1b1b1b; transition: transform .18s ease-out; }
.bBall .top { top: 0; border-radius: 99em 99em 0 0; background: linear-gradient(#ff6a5c, #e3261b 70%, #1b1b1b 88%); transform-origin: 8% 100%; }
.bBall .bot { bottom: 0; border-radius: 0 0 99em 99em; background: linear-gradient(#1b1b1b 12%, #fafafa 30%, #cfcfcf); }
.bBall .top::after { content: ""; position: absolute; left: 50%; bottom: -22%; width: 30%; aspect-ratio: 1; translate: -50% 0; border-radius: 50%; background: #fff; box-shadow: 0 0 0 .12em #1b1b1b; z-index: 1; }
.bBall.go { animation: ballX .6s linear forwards; }
.bBall.go i { animation: ballY .6s cubic-bezier(.3, 0, .7, 1) forwards; }
@keyframes ballX { from { opacity: 1; transform: translateX(0); } to { opacity: 1; transform: translateX(-20%); } }
@keyframes ballY { 0% { transform: translateY(0) rotate(0); } 55% { transform: translateY(-560%) rotate(-540deg); } 100% { transform: translateY(-260%) rotate(-1080deg); } }
.bBall.open .top { transform: rotate(-110deg); }
.bBall.open { animation: ballX .6s linear forwards, ballFade .5s ease-in .35s forwards; }
@keyframes ballFade { to { opacity: 0; } }
.bBurst { left: 25.6%; top: 37%; width: 5%; }
.bBurst.go { background: radial-gradient(circle, #fff 0 30%, #fffc 45%, transparent 70%); box-shadow: none; animation: bwFlash .7s ease-out forwards; }
@keyframes bwFlash { 0% { opacity: 1; transform: scale(.4); } 40% { opacity: 1; transform: scale(2.4); } 100% { opacity: 0; transform: scale(3.2); } }
.bBurst .rays { position: absolute; inset: -260%; border-radius: 50%; opacity: 0;
  background: repeating-conic-gradient(#fff0 0 8deg, #fffe 10deg 13deg, #fff0 15deg 30deg); -webkit-mask: radial-gradient(circle, #000 15%, transparent 68%); mask: radial-gradient(circle, #000 15%, transparent 68%); }
.bBurst.go .rays { animation: bwRays .8s ease-out forwards; }
@keyframes bwRays { 0% { opacity: 0; transform: rotate(0) scale(.3); } 25% { opacity: 1; } 100% { opacity: 0; transform: rotate(80deg) scale(1.1); } }
.bBurst em { position: absolute; left: 50%; top: 50%; width: 18%; aspect-ratio: 1; opacity: 0; rotate: var(--a);
  background: radial-gradient(circle, #fff 0 30%, #fff5c0 45%, transparent 70%); clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%); }
.bBurst.go em { animation: bwSpark .7s ease-out var(--d) forwards; }
@keyframes bwSpark { 0% { opacity: 1; transform: translate(-50%, -50%) scale(.6); } 100% { opacity: 0; transform: translate(-50%, -50%) translateY(-520%) scale(1.3); } }
/* le Pokémon sort de la Ball : silhouette blanche qui grandit depuis la Ball, rebond, puis couleurs */
.bMon.back.bwOut { animation: bwOut .9s cubic-bezier(.25, 1.4, .5, 1) both !important; transform-origin: 50% 10%; }
@keyframes bwOut { 0% { transform: scale(0); filter: brightness(0) invert(1); opacity: 0; } 15% { opacity: 1; } 55% { transform: scale(1.06, .96); filter: brightness(0) invert(1); }
  75% { transform: none; filter: brightness(2.2); } 100% { transform: none; filter: none; opacity: 1; } }
/* carte large active : l'image du jeu est dessinée dans la même toile que la carte (voir drawWide) */
body.emuCopy #emu { opacity: 0; }

/* connexion : écran du jeu caché jusqu'à la première image de la vue large */
body.emuWait #emu { opacity: 0; }

/* sélection du personnage façon PokeMMO : dresseur debout (Pokéball en main) + icônes de l'équipe */
.charcard .cc { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 4px 0 2px; }
.ccPose canvas { width: calc(38px * 3); height: calc(33px * 3); display: block; image-rendering: pixelated; }
.ccTeam { display: grid; grid-template-columns: repeat(3, 32px); grid-auto-rows: 32px; gap: 2px 4px; }
.ccTeam i { width: 32px; height: 32px; background: 0 0 / 32px 64px no-repeat; image-rendering: pixelated; animation: iconHop .5s steps(1) infinite; }
.charcard.sel .ccTeam i { animation-duration: .25s; }
@keyframes iconHop { 50% { background-position: 0 -32px; } }
.skinPick canvas { width: calc(38px * 2); height: calc(33px * 2); image-rendering: pixelated; }
.charcard { min-height: 150px; }
.charcard .cc { min-height: 104px; }
.ccTeam:empty { display: none; }
/* poses dessinées (skins/poses) : dresseur en pied comme PokeMMO, Pokémon de l'équipe en petit à côté */
.ccPose img.pose { height: 112px; width: auto; display: block; filter: drop-shadow(0 3px 2px #0007); }
.charcard .cc { gap: 18px; }
.skinPick { height: 96px; }
.skinPick img.pose { height: 86px; width: auto; filter: drop-shadow(0 2px 1px #0007); }
.skinGrid { max-height: none; }
/* Poké Ball lancée par Sacha (trajectoire calculée depuis sa main) */
.bBall.fly { opacity: 1; z-index: 5; }
/* animations d'attaque (particules selon le type) */
.bFx { position: absolute; width: 0; height: 0; z-index: 3; pointer-events: none; }
.bFx i { position: absolute; left: 0; top: 0; width: 2.4vmin; height: 2.4vmin; margin: -1.2vmin; background: var(--c); opacity: 0; filter: drop-shadow(0 0 .4vmin var(--c));
  animation: fxOut .65s ease-out forwards; }
@keyframes fxOut { 0% { opacity: 1; transform: translate(0, 0) rotate(0) scale(.4); } 100% { opacity: 0; transform: translate(var(--dx), var(--dy)) rotate(var(--r)) scale(1.2); } }
.bFx.star i { clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
.bFx.flame i { border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%; background: radial-gradient(circle at 50% 70%, #fff6a0, var(--c) 60%); animation-name: fxRise; }
@keyframes fxRise { 0% { opacity: 1; transform: translate(calc(var(--dx) * .3), 2vmin) scale(.5); } 100% { opacity: 0; transform: translate(calc(var(--dx) * .5), -7vmin) scale(1.4); } }
.bFx.bubble i { border-radius: 50%; background: radial-gradient(circle at 35% 35%, #fff 0 15%, var(--c) 45%, transparent 72%); }
.bFx.leaf i { border-radius: 0 70% 0 70%; }
.bFx.bolt i { width: 1.2vmin; height: 6vmin; margin: -3vmin -.6vmin; clip-path: polygon(40% 0, 100% 0, 60% 45%, 100% 45%, 20% 100%, 40% 55%, 0 55%); animation: fxBolt .5s steps(2) forwards; }
@keyframes fxBolt { 0%, 100% { opacity: 0; } 20%, 70% { opacity: 1; transform: translate(var(--dx), var(--dy)); } }
.bFx.rock i { border-radius: 30%; animation-name: fxFall; }
@keyframes fxFall { 0% { opacity: 1; transform: translate(var(--dx), -9vmin); } 80% { opacity: 1; transform: translate(calc(var(--dx) * .5), 0) rotate(var(--r)); } 100% { opacity: 0; } }
.bFx.slash i { width: 8vmin; height: .7vmin; margin: -.35vmin -4vmin; border-radius: 1vmin; animation-name: fxSlash; }
@keyframes fxSlash { 0% { opacity: 1; transform: rotate(var(--r)) scaleX(0); } 60% { opacity: 1; transform: rotate(var(--r)) scaleX(1); } 100% { opacity: 0; transform: rotate(var(--r)) scaleX(1); } }
.bFx.shard i { clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); }
.bFx.ring i { width: 7vmin; height: 7vmin; margin: -3.5vmin; border-radius: 50%; background: none; border: .7vmin solid var(--c); animation-name: fxRing; animation-duration: .7s; }
@keyframes fxRing { 0% { opacity: 1; transform: scale(.2); } 100% { opacity: 0; transform: scale(2.6); } }

/* sélection au clavier dans les menus du combat (PokeMMO) : coins jaunes, cadre complet qui clignote */
#bscene .bActsWrap button { position: relative; }
#bscene .bActsWrap button.bSel::after { content: ""; position: absolute; inset: -3px; pointer-events: none; --y: #f2c84b;
  background: linear-gradient(var(--y), var(--y)) 0 0 / 12px 3px, linear-gradient(var(--y), var(--y)) 0 0 / 3px 12px,
    linear-gradient(var(--y), var(--y)) 100% 0 / 12px 3px, linear-gradient(var(--y), var(--y)) 100% 0 / 3px 12px,
    linear-gradient(var(--y), var(--y)) 0 100% / 12px 3px, linear-gradient(var(--y), var(--y)) 0 100% / 3px 12px,
    linear-gradient(var(--y), var(--y)) 100% 100% / 12px 3px, linear-gradient(var(--y), var(--y)) 100% 100% / 3px 12px;
  background-repeat: no-repeat; animation: bSelBlink 1s steps(1) infinite; }
@keyframes bSelBlink { 50% { box-shadow: inset 0 0 0 1px var(--y); } }
#bscene .bActsWrap button.mCard.bSel::after { inset: 0; } /* cartes d'attaque en overflow: hidden : à -3px, les coins étaient coupés */

/* fond du combat : carte large figée (toile) derrière l'assombrissement et la fenêtre */
#bgMap { position: fixed; inset: 0; width: 100vw; height: 100vh; z-index: -1; pointer-events: none; image-rendering: pixelated; }
#bscene.gbaMode #bgMap { display: none; }
#bscene .bStuck { position: fixed; top: 12px; right: 12px; z-index: 6; pointer-events: auto; padding: 8px 14px; font: 600 14px system-ui; color: #fff; background: #b03030; border: 2px solid #fff8; border-radius: 6px; cursor: pointer; }
/* menu des attaques façon PokeMMO : 4 petites cartes 2 x 2 à gauche, tenues dans la barre ; Retour petit, en bas à droite */
.bBar:has(.bActs.mv) { height: 20%; padding: 5px 6px; }
.bBar:has(.bActs.pty) { height: 20%; padding: 5px 6px; }
.bBar:has(.bActs.pty) .bText, .bBar:has(.bBag) .bText { display: none; }
.bBar:has(.bActs.pty) .bBack, .bBar:has(.bBag) .bBack, body.mmo .bBar:has(.bActs.pty) .bBack, body.mmo .bBar:has(.bBag) .bBack { position: absolute; right: .7%; bottom: 7%; width: 9.5%; margin: 0; }
.bBar:has(.bBag) .bBack, body.mmo .bBar:has(.bBag) .bBack { right: .6%; bottom: 3.6%; width: 7%; height: 1.354vw; aspect-ratio: auto; font-size: .56vw; }
.bWin .bBox { z-index: 7; }
/* sac de combat */
.bBar:has(.bBag), body.mmo .bBar:has(.bBag) { height: 35.2%; padding: .6%; background: #000000a0; }
.bBar:has(.bBag) .bActsWrap { flex: 1; display: flex; gap: 1%; min-width: 0; height: 100%; }
.bBar:has(.bBag) .bActsWrap, .bBar:has(.bActs.pty) .bActsWrap { position: static; }
.bBag { width: 21.9%; display: flex; flex-direction: column; gap: .36vw; min-height: 0; }
.bgHead { display: grid; grid-template-columns: 3.33vw 1fr 3.33vw; align-items: center; text-align: center; font-size: .75vw; }
.bgHead button, .bgRow, .bgOk { color: #fff; font: inherit; cursor: pointer; background: linear-gradient(#7e868d, #4f575e); border: 1px solid #2a2f33; border-radius: 3px; box-shadow: 0 1px 0 #ffffff40 inset; }
.bgHead button { height: 1.354vw; padding: 0; background: linear-gradient(#5f6469, #2f3337); border-color: #1a1d20; color: #d8dcdf; }
.bgHead button:hover, .bgRow:hover, .bgOk:hover, .bgRow.bSel, .bgHead button.bSel, .bgOk.bSel { box-shadow: 0 0 0 2px #e8c84a inset; }
.bgList { display: flex; flex-direction: column; gap: 3px; overflow: hidden auto; min-height: 0; flex: 1; padding: 0; }
.bgRow { flex: none; height: 1.354vw; padding: 0 3.4%; text-align: right; font-size: .62vw; letter-spacing: .03em; }
.bgList::-webkit-scrollbar { width: 3px; } .bgList::-webkit-scrollbar-thumb { background: #fff; border-radius: 2px; } .bgList::-webkit-scrollbar-track, .bgList::-webkit-scrollbar-button { display: none; background: transparent; }
#bscene .bActsWrap button.bgRow.on.bSel:not(:hover)::after { display: none; }
.bgRow.on { background: linear-gradient(#8f959b, #4e5358); }
.bgInfo { flex: none; width: 40%; display: flex; gap: .2vw; margin: 1.82vw 0 0 .26vw; align-items: flex-start; }
.bgIcon { flex: none; width: 3.33vw; height: 3.28vw; display: grid; place-items: center; background: #0003; border: 1px solid #ffffff24; }
.bgIcon img { width: 2.5vw; image-rendering: pixelated; }
.bgDesc { font-size: .66vw; line-height: 1.42; letter-spacing: .03em; color: #fff; }
.bgDash { display: block; }
.bgDesc hr { border: 0; border-top: 1px dashed #ffffff70; margin: 3px 0; }
#bscene .bBar:has(.bActs.pty) .bBack, #bscene .bBar:has(.bBag) .bBack, #bscene .bBar .bgOk { position: absolute; } /* sinon "#bscene .bActsWrap button" les laisse en relative */
.bgOk { left: 23.6%; bottom: 3.6%; width: 7%; height: 1.354vw; font-size: .56vw; letter-spacing: .02em; padding: 0; background: linear-gradient(#70757a, #55595d); display: flex; align-items: center; justify-content: center; gap: 4px; }
.bgOk::before { content: "A"; flex: none; display: grid; place-items: center; width: .72vw; height: .72vw; border-radius: 50%; background: #e8e8e8; color: #333; font-size: .46vw; font-weight: 700; }
.bActs.pty, body.mmo .bActs.pty { flex: none; width: 52%; height: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); gap: 4px; }
.bActs.pty .pCard, body.mmo .bActs.pty .pCard { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-rows: 1fr auto 1fr; column-gap: 6px; align-items: center; place-content: stretch; height: 100%; min-height: 0; padding: 1px 6px 1px 3px; text-align: left; color: #fff; background: linear-gradient(#59636c, #3e464e); border: 1px solid #7c858c; border-radius: 2px; box-shadow: none; }
.bActs.pty .pCard:hover:not(:disabled), .bActs.pty .pCard.bSel, body.mmo .bActs.pty .pCard:hover:not(:disabled) { background: linear-gradient(#6a7681, #4a535c); box-shadow: 0 0 0 2px #e8c84a inset; }
.bActs.pty .pCard.on { background: linear-gradient(#2f4570, #203257); cursor: default; }
.bActs.pty .pCard:disabled:not(.on) { opacity: .55; cursor: default; }
.pCard img { grid-row: 1 / 4; height: calc(var(--bw, 1vw) * 2.6); width: calc(var(--bw, 1vw) * 2.6); object-fit: contain; image-rendering: pixelated; background: #0003; border-radius: 2px; }
.pCard .pN { font-size: calc(var(--bw, 1vw) * .72); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pCard .pL { font-size: calc(var(--bw, 1vw) * .66); white-space: nowrap; }
.pCard .pB { grid-column: 2 / 4; display: block; height: 3px; background: #222; }
.pCard .pB i { display: block; height: 100%; }
.pCard .pP { grid-column: 2 / 4; font-size: calc(var(--bw, 1vw) * .62); white-space: nowrap; }
.bActs.mv, body.mmo .bActs.mv { width: 30%; height: 100%; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); gap: 5px; }
.bActs.mv .mCard, body.mmo .bActs.mv .mCard { min-height: 0; height: 100%; padding: 1px 5px; gap: 0 4px; border-radius: 2px; border: 1px solid #7c858c;
  background: linear-gradient(#4b535a, #343b41); box-shadow: 0 0 0 1px #1c2024; overflow: hidden; }
.bActs.mv .mCard .mN { font-size: calc(var(--bw, 1vw) * .72); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bActs.mv .mCard .mT { font-size: calc(var(--bw, 1vw) * .5); padding: 0 5px; border-radius: 2px; }
.bActs.mv .mCard .mE { font-size: calc(var(--bw, 1vw) * .5); padding: 0 6px; border-radius: 1px; }
.bActs.mv .mCard .mP { font-size: calc(var(--bw, 1vw) * .58); }
.bActs.mv .mCard.empty .mN, .bActs.mv .mCard.empty .mP { color: #aaa; }
.bBar:has(.bActs.mv) .bBack { width: 6.5%; min-width: 60px; align-self: flex-end; margin-left: auto; font-size: calc(var(--bw, 1vw) * .55); padding: 3px 6px; }
/* animations d'attaque HeartGold / SoulSilver : particules (toile), flash de couleur sur un Pokémon, fondu du décor */
.bStage .bFxCv { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 4; }
.bStage .bFxTint { position: absolute; pointer-events: none; z-index: 3; -webkit-mask-size: 100% 100%; mask-size: 100% 100%; image-rendering: pixelated; }
.bStage .bFxBg { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.bStage .bWxSnow { position: absolute; inset: -60% 0; pointer-events: none; z-index: 0; background: rgba(214, 220, 228, .4); } /* grêle de PokeMMO : décor gris délavé */
.bStage .bWxHaze { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; } /* tempête de sable : brume derrière les Pokémon */
.bStage .bFieldFx { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; } /* Picots : au sol, derrière les Pokémon */
.bStage .bWxDust { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 2; } /* grains devant les Pokémon, sous les attaques */
.bStage .bWxRain { position: absolute; inset: -60% 0; pointer-events: none; z-index: 0; background: rgba(10, 14, 26, .38); } /* pluie : décor assombri et bleuté. 0.5.379 : simple voile, plus de backdrop-filter (sans effet pendant l'entrée en combat, quand la scène bouge : couleur claire au début) ; débordant, comme le décor (::before) en plan large */
.bStage .bWxRain.storm { background: rgba(6, 9, 20, .53); }
.bStage .bWxSand { position: absolute; inset: 0; pointer-events: none; z-index: 0; backdrop-filter: sepia(1) saturate(1.9) brightness(.5) hue-rotate(-10deg); } /* tempête de sable de PokeMMO : décor brun-orangé */
#bscene .bBar:has(.bActs.mv) .bBack { position: absolute; right: 1.2%; bottom: 10%; margin: 0; }
/* Poké Ball de la ROM Rouge Feu : 3 images (fermée, ouverte...), tourne en vol, sans lissage */
.bBall.fly b, .bBall.held b { display: none; }
.bBall.fly i, .bBall.held i { border-radius: 0; box-shadow: none; overflow: visible; image-rendering: pixelated; background: var(--ballRom) 0 0 / 300% 100% no-repeat; }
.bBall.fly i { animation: ballSpin .4s steps(8) infinite; filter: drop-shadow(0 .25em .2em #0006); }
.bBall.fly.open { animation: ballPop .28s ease-out forwards; }
.bBall.fly.open i { animation: none; background-position: 50% 0; filter: brightness(1.8); }
@keyframes ballSpin { to { transform: rotate(-360deg); } }
/* dresseur adverse (sprite de face de la ROM) : sur la plateforme d'en face, il sort par la droite quand il envoie son Pokémon */
.bFoeTr { position: absolute; left: 63.5%; top: 37%; width: 11.5%; z-index: 3; image-rendering: pixelated; filter: drop-shadow(0 3px 4px #0007); transition: transform .55s cubic-bezier(.4, 0, .8, .6), opacity .55s; }
.bFoeTr.leave { visibility: hidden !important; transition: none; } /* 2026-11-11 : il disparaît d un coup après s être éloigné (foeTrWalkOff), comme PokeMMO */
/* l'autre joueur en carte (la sienne ou celle par défaut des hommes) : même taille de personnage et mêmes pieds que l'ancien dessin (7,5 %, 62 %, 21 %) */
.bFoeTr.carte { width: 9.4%; left: 61%; top: 21%; }
/* capture */
.bLvl { position: absolute; right: 2.5%; top: 6%; width: 21%; z-index: 7; padding: .6em .8em; color: #fff; font-size: 1vw; background: #1f242bee; border: 1px solid #5a6470; border-radius: 4px; box-shadow: 0 3px 12px #0008; text-shadow: 0 1px 1px #000; animation: bLvlIn .2s ease-out; }
.bLvl h4 { margin: 0 0 .35em; font-size: 1.05em; color: #ffe85a; }
.bLvl div { display: grid; grid-template-columns: 1fr 2.6em 2.6em; padding: .12em 0; }
.bLvl b { color: #7fe08a; text-align: right; }
.bLvl em { font-style: normal; text-align: right; }
@keyframes bLvlIn { from { opacity: 0; transform: translateY(-6px); } }
.bBwFx { position: absolute; width: 21%; aspect-ratio: 1; translate: -50% -41.7%; z-index: 6; pointer-events: none; image-rendering: pixelated; background: 0 0 no-repeat; }
.bCatch { position: absolute; width: 3.2%; aspect-ratio: 1; translate: -50% -50%; z-index: 5; image-rendering: pixelated; background: 0 0 / 300% 100% no-repeat; filter: drop-shadow(0 .2em .15em #0006); transform-origin: 50% 90%; }
.bCatch.rock { animation: ballRock 1.05s ease-in-out infinite; }
@keyframes ballRock { 0%, 55%, 100% { transform: rotate(0); } 15% { transform: rotate(-24deg); } 40% { transform: rotate(24deg); } }
.bCatch.caught { filter: brightness(.55) drop-shadow(0 .2em .15em #0006); transition: filter .3s; }
.bMon.front.inBall { animation: none !important; transform: scale(0); opacity: 0; filter: brightness(6); transition: transform .3s ease-in, opacity .3s, filter .2s; }
.bStar { position: absolute; translate: -50% -50%; z-index: 5; color: #ffe85a; font-size: 1.1vw; font-style: normal; text-shadow: 0 0 3px #fff; pointer-events: none; animation: bStar .75s ease-out forwards; }
@keyframes bStar { from { transform: translate(0, 0) scale(.5); opacity: 1; } to { transform: translate(var(--dx), -3.5vw) scale(1.1); opacity: 0; } }
/* vieil homme : pas de Pokémon, donc ni sprite ni jauge de mon côté */
.bWin.iOldMan .bBox.mine { display: none; }
@keyframes ballPop { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(1.6); } }
/* ROM manquante : écran bloquant (le jeu ne se lance pas) */
#romMissing { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; background: #000d; }
#romMissing .rmWin { width: min(520px, 90vw); padding: 22px 26px; background: #1b1f24; color: #eee; border: 1px solid #c0201a; border-radius: 8px; box-shadow: 0 10px 40px #000a; font: 14px "Segoe UI", sans-serif; }
#romMissing h2 { margin: 0 0 10px; color: #ff5040; font-size: 22px; }
#romMissing ul { margin: 6px 0 12px; padding-left: 4px; list-style: none; }
#romMissing li { margin: 4px 0; color: #ff8a7a; font-weight: 600; }
#romMissing small { color: #aaa; font-weight: 400; }
#romMissing code { display: block; padding: 8px 10px; background: #0008; border-radius: 4px; color: #ffcb05; font: 13px Consolas, monospace; word-break: break-all; }
#romMissing .rmBtns { display: flex; gap: 10px; justify-content: flex-end; margin-top: 16px; }
#romMissing button { padding: 7px 18px; border: 0; border-radius: 4px; background: #ff6a1a; color: #fff; font-weight: 700; cursor: pointer; }
#romMissing #rmOpen { margin-right: auto; background: #2d6cdf; }
#romMissing #rmQuit { background: #444; }

/* résumé d'un Pokémon */
#sumWin, .sumCopy { position: fixed; z-index: 8; width: 520px; color: #dfe4ea; font: 13px "Segoe UI", sans-serif; background: #262b33; border: 2px solid #11151b; border-radius: 6px; box-shadow: 0 0 0 1px #5f6b78, 0 10px 30px #000b; user-select: none; }
.sumHead { display: flex; align-items: center; justify-content: space-between; height: 30px; padding: 0 6px; background: linear-gradient(#aebdca, #8497a8); border-bottom: 1px solid #11151b; border-radius: 4px 4px 0 0; cursor: default; }
.sumHead > b { color: #17202a; font-size: 13px; margin-left: auto; margin-right: 12px; }
.sumTabs { display: flex; gap: 1px; }
.sumTabs button { width: 22px; height: 24px; padding: 2px; color: #26303b; background: none; border: 0; border-radius: 3px; cursor: pointer; }
.sumTabs button:hover { background: #ffffff40; }
.sumTabs button.on { color: #000; background: #ffffff66; box-shadow: inset 0 0 0 1px #2d3946; }
.sumTabs svg, .sIco svg, .smArr svg, .srLock svg, .srMark svg, .sRib svg, .emI svg, .emSet svg, .emSub svg, .emMoney svg, .emExt svg { display: block; width: 100%; height: 100%; }
.sumX { padding: 0 4px; color: #17202a; background: none; border: 0; font-size: 13px; cursor: pointer; }
.sumX:hover { color: #a01818; }
.sumBody { display: grid; grid-template-columns: 1fr 232px; min-height: 288px; }
.sumLeft { position: relative; padding: 12px 12px 10px; background: #2b3039; border-right: 1px solid #14181e; }
.sRow { display: grid; grid-template-columns: 12px 92px 1fr; align-items: center; gap: 4px; margin-bottom: 7px; }
.sRow > i { width: 9px; height: 9px; border: 1.5px solid #aab2bd; border-radius: 50%; box-shadow: inset 0 0 0 1.5px #2b3039, inset 0 0 0 5px #aab2bd; }
.sRow label { color: #e4e8ed; }
.sRow.head { grid-template-columns: 12px 1fr auto; margin: 0 0 3px; }
.sRow.head em { font-style: normal; color: #c8ced6; }
.sVal { display: flex; align-items: center; justify-content: space-between; min-height: 26px; padding: 0 8px; background: #1e2228; border: 1px solid #3c434d; border-radius: 2px; color: #eef1f4; }
.sVal input { width: 100%; padding: 0; color: #fff; font: inherit; background: none; border: 0; outline: 0; user-select: text; }
.sRow.zero .sVal { color: #ef7b6c; }
.sIco { flex: none; width: 18px; height: 18px; padding: 0; color: #e0c35a; background: none; border: 0; cursor: pointer; }
.sIco:hover { color: #fff; }
.sTurn { position: absolute; right: 12px; bottom: 6px; color: #4aa3f0; }
.sBar { height: 6px; margin: -2px 0 9px; background: #171a1f; border: 1px solid #3c434d; border-radius: 3px; overflow: hidden; }
.sBar i { display: block; height: 100%; }
.sHelp { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding-left: 16px; }
.sHelp button { width: 16px; height: 16px; padding: 0; color: #1a1f25; font: 700 11px "Segoe UI"; background: #e8ebef; border: 0; border-radius: 2px; cursor: pointer; }
.sHelp p { margin: 2px 0 0; color: #aeb6c0; font-size: 11px; line-height: 1.35; }
.smRow { display: grid; grid-template-columns: 12px 18px 1fr 56px; align-items: center; gap: 3px; margin-bottom: 5px; }
.smRow > i { width: 9px; height: 9px; border: 1.5px solid #aab2bd; border-radius: 50%; box-shadow: inset 0 0 0 1.5px #2b3039, inset 0 0 0 5px #aab2bd; }
.smArr { display: grid; gap: 1px; }
.smArr button { width: 16px; height: 16px; padding: 2px; color: #d7dce2; background: none; border: 0; cursor: pointer; }
.smArr button:hover { color: #ffe27a; }
.smCard { height: 38px; padding: 3px 16px 0 6px; text-align: center; background: repeating-linear-gradient(45deg, #1b1f25 0 3px, #20252c 3px 6px); clip-path: polygon(0 0, calc(100% - 13px) 0, 100% 50%, calc(100% - 13px) 100%, 0 100%); }
.smCard.smFm { cursor: pointer; } .smCard.smFm:hover { filter: brightness(1.35); }
.smCard b { display: block; font-weight: 600; color: #fff; }
.smCard span { color: #dfe4ea; font-size: 12px; }
.smType { height: 30px; margin-left: -12px; padding: 0 10px 0 15px; color: #1c1c1c; line-height: 30px; font-size: 11px; text-align: center; background: #20242b; clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%, 10px 50%); }
.smRow + .sRow { margin-top: 9px; }
.sBox { padding: 8px 10px; color: #e4e8ed; line-height: 1.35; background: #1e2228; border: 1px solid #3c434d; border-radius: 2px; }
.sBox.tall { min-height: 170px; margin-top: 6px; }
.sBox.mid { margin-top: 6px; padding: 14px; text-align: center; }
.sRibs { display: grid; gap: 7px 9px; justify-content: start; margin-bottom: 8px; }
.sRibs.six { grid-template-columns: repeat(6, 28px); }
.sRibs.five { grid-template-columns: repeat(5, 28px); }
.sRib { width: 28px; height: 28px; color: #15181d; }
.sRib.on { filter: drop-shadow(0 1px 2px #000a); }
.sumRight { display: flex; flex-direction: column; background: #20242b; border-radius: 0 0 4px 0; }
.srHead { display: flex; align-items: center; gap: 4px; height: 28px; padding: 0 9px 0 4px; color: #fff; background: #123b4f; } /* comme PokeMMO : Ball à 4 px du bord, nom à 4 px de la Ball */
.srHead b, .srHead em { text-shadow: 1px 0 #0008, -1px 0 #0008, 0 1px #0008, 0 -1px #0008; } /* contour sombre d'1 px du texte de PokeMMO */
.srHead b { font-weight: 600; letter-spacing: .3px; }
.srHead i { margin-left: auto; font-style: normal; }
.srHead .mal { color: #6bb4ff; } .srHead .fem { color: #ff8ab4; }
.srHead em { font-style: normal; margin-left: 8px; }
.srBall { width: 16px; height: 16px; flex: none; background: no-repeat 0 0 / 48px 16px; image-rendering: pixelated; }
.srBall.one { background-size: 16px 16px; } /* icône de Ball du Résumé de Noire : une seule image */
.sIco .mmoIco { width: 16px; height: 16px; image-rendering: pixelated; display: block; }
.srStage { position: relative; flex: 1; min-height: 196px; display: grid; place-items: center; overflow: hidden; background: radial-gradient(ellipse 80% 22% at 50% 76%, #3f8ca688 0 38%, transparent 39%), radial-gradient(ellipse 110% 34% at 50% 76%, #2d6f8a66 0 60%, transparent 61%), radial-gradient(circle at 25% 15%, #1f6a84, #0d3b50 75%); }
.srStage img { width: 172px; height: 172px; object-fit: contain; image-rendering: pixelated; }
.srFx { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; } /* décor du type (pluie, feuilles, braises…), dessiné par stageTick */
.srStage img { position: relative; z-index: 1; } .srStage img.srShiny { position: absolute; top: 2px; right: 2px; width: 20px; height: 20px; z-index: 2; image-rendering: pixelated; } /* étoile du shiny, comme PokeMMO */ .srStage .bShadow { z-index: 1; } .srStage .srLock, .srStage .srFoot { z-index: 2; }
.srLock { position: absolute; right: 8px; top: 7px; width: 14px; height: 14px; color: #0f2a38; } .srShiny ~ .srLock { right: auto; left: 8px; } /* shiny : l'étoile prend le coin droit, le cadenas passe à gauche */
.srFoot { position: absolute; left: 6px; bottom: 5px; display: flex; align-items: center; gap: 4px; }
.srFoot u { min-width: 44px; padding: 1px 6px; color: #10202a; font-size: 10px; text-align: center; text-decoration: none; border-radius: 2px; clip-path: polygon(6px 0, 100% 0, calc(100% - 6px) 100%, 0 100%); }
.srMark { width: 12px; height: 12px; color: #1b2c36; }
.srMark.on { color: #f3f6f8; }
.srItem { display: flex; align-items: center; justify-content: space-between; height: 54px; padding: 0 10px 0 14px; border-top: 1px solid #14181e; }
.srSlot { width: 32px; height: 32px; background: #30353d; border: 1px solid #434a55; border-radius: 2px; }
/* menu Échap */
#escMenu { position: fixed; inset: 0; z-index: 30; display: grid; place-items: center; background: #0006; font: 13px "Segoe UI", sans-serif; color: #e6e9f0; }
#escMenu.hidden { display: none; }
.emBox { position: relative; width: min(920px, calc(100vw - 32px)); padding: 18px 20px 22px; background: #121622f2; border: 1px solid #2b3142; border-radius: 12px; box-shadow: 0 14px 40px #000a; }
.emTop { display: flex; align-items: center; gap: 10px; padding-bottom: 14px; border-bottom: 1px solid #2a3040; }
.emTop > div:first-child { margin-right: auto; }
.emPlace b { font-size: 18px; font-weight: 600; }
.emPlace span { margin-left: 8px; color: #9aa1b2; font-size: 10px; letter-spacing: .4px; vertical-align: 5px; }
.emSub { display: flex; align-items: center; gap: 4px; margin-top: 2px; color: #a6acba; font-size: 12px; }
.emSub svg { width: 12px; height: 12px; }
.emMoney { display: grid; justify-items: end; margin-right: 8px; }
.emMoney span { color: #9aa1b2; font-size: 10px; }
.emMoney b { display: flex; align-items: center; gap: 5px; font-weight: 600; }
.emMoney svg { width: 14px; height: 14px; color: #e8bd3c; }
.emSet, .emBack { height: 36px; color: #e6e9f0; font: inherit; background: #21273a; border: 0; border-radius: 7px; cursor: pointer; }
.emSet { width: 36px; padding: 9px; }
.emBack { padding: 0 12px; font-weight: 600; }
.emSet:hover, .emBack:hover { background: #2d3550; }
.emBack kbd { margin-left: 5px; padding: 1px 5px; color: #b7bdcb; font: 10px "Segoe UI"; background: #151929; border: 1px solid #3a4158; border-radius: 3px; }
.emCols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 12px; }
.emCols > div { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.emCols h5 { margin: 0 0 4px 3px; color: #8d94a5; font-size: 10px; font-weight: 600; letter-spacing: .6px; }
.emI { display: flex; align-items: center; gap: 9px; width: 100%; height: 34px; padding: 0 10px; color: #e6e9f0; font: 600 13px "Segoe UI", sans-serif; text-align: left; background: #1b2030; border: 0; border-radius: 6px; cursor: pointer; }
.emI:hover:not(:disabled) { background: #2a3146; }
.emI:disabled { color: #6e7485; cursor: default; }
.emI svg { flex: none; width: 15px; height: 15px; }
.emI span { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.emI small { flex: none; max-width: 80px; overflow: hidden; color: #8d94a5; font-size: 10px; white-space: nowrap; text-overflow: ellipsis; }
.emI em { flex: none; padding: 1px 6px; color: #cfd4df; font: 600 9px "Segoe UI"; background: #2c3348; border-radius: 8px; }
.emI .emExt { width: 11px; height: 11px; }
.emI.red { color: #f08178; background: #3a1c22; }
.emI.red:hover { background: #4d242c !important; }
.emLast .emGap { flex: 1; min-height: 20px; }
#emPop { position: absolute; z-index: 2; display: grid; gap: 3px; width: 210px; padding: 5px; background: #171c2b; border: 1px solid #343b50; border-radius: 8px; box-shadow: 0 6px 18px #000a; }
#emPop.hidden { display: none; }
#emPop button { display: flex; align-items: center; gap: 7px; height: 30px; padding: 0 7px; color: #e6e9f0; font: 600 12px "Segoe UI"; background: none; border: 0; border-radius: 5px; cursor: pointer; }
#emPop button:hover:not(:disabled) { background: #2a3146; }
#emPop button:disabled { opacity: .55; cursor: default; }
#emPop img { width: 24px; height: 24px; image-rendering: pixelated; }
#emPop small { margin-left: auto; color: #8d94a5; font-size: 10px; }
.emDot { width: 8px; height: 8px; border-radius: 50%; background: #d84a3a; }
.emDot.on { background: #3fce62; }
@media (max-width: 700px) { .emCols { grid-template-columns: repeat(2, 1fr); } }

/* combat façon vidéo PokeMMO : fenêtre au-dessus du chat, caméra, silhouette blanche, K.O. qui s'enfonce */
#bscene { place-items: start center; padding-top: 6px; box-sizing: border-box; }
.bWin { width: min(94vw, calc((100vh - 250px) * 16 / 9)); }
.bStage { overflow: visible; will-change: scale, translate; }
.bWin.iZoom .bMon.front { filter: brightness(.22); }
.bWin.iIntro .bMon.front { transition: filter 1.4s ease-out .2s; }
.bMon.enter { animation: bEnter .8s cubic-bezier(.25, 1.3, .5, 1), bIdle 1.2s ease-in-out .8s infinite; }
@keyframes bEnter { 0% { transform: scale(.1); filter: brightness(0) invert(1); opacity: 0; } 15% { opacity: 1; } 55% { transform: scale(1.05, .96); filter: brightness(0) invert(1); } 100% { transform: none; filter: none; } }
.bMon.ko, .bMon.ko.bw { animation: bFaint .75s ease-in forwards !important; }
@keyframes bFaint { from { transform: none; clip-path: inset(0 0 0 0); } to { transform: translateY(100%); clip-path: inset(0 0 100% 0); visibility: hidden; } }
.bBox.bSlide { animation: bSlideL .4s ease-out; }
.bBox.mine.bSlide { animation-name: bSlideR; }
@keyframes bSlideL { from { transform: translateX(-105%); } }
@keyframes bSlideR { from { transform: translateX(105%); } }
/* évolution façon PokeMMO, dans la fenêtre de combat */
#evoWin { position: absolute; inset: 0; z-index: 20; pointer-events: auto; background: #2e2e2e; overflow: hidden; }
#evoWin canvas { display: block; width: 100%; height: 100%; image-rendering: pixelated; }
#evoWin .evoBtns { position: absolute; right: 1%; top: 12%; display: flex; flex-direction: column; gap: 4px; }
#evoWin .evoBtns button { min-width: 70px; color: #fff; cursor: pointer; font: inherit; background: linear-gradient(#7e868d, #4f575e); border: 1px solid #2a2f33; border-radius: 3px; }
#evoWin .evoBtns button:hover { box-shadow: 0 0 0 2px #e8c84a inset; }
/* clic droit : joueurs proches et sous-menu, comme PokeMMO */
#ctx { background: #171a24f2; border: 1px solid #0b0d13; border-radius: 6px; padding: 6px; min-width: 210px; display: block; font: 13px "MmoName", "Segoe UI", sans-serif; color: #fff; box-shadow: 0 4px 14px #0008; }
#ctx .title { padding: 3px 8px 7px; color: #aab0bd; font-weight: 400; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
#ctx button { display: flex; align-items: center; gap: 8px; width: 100%; padding: 7px 8px; border: 0; color: #fff; font: inherit; cursor: pointer; }
#ctx button:hover, #ctx .ctxRow.on { background: #2a2f3d; }
#ctx button:disabled { opacity: .5; cursor: default; }
#ctx .ctxRow canvas { width: 20px; height: 16px; image-rendering: pixelated; border-radius: 50%; background: #0004; }
#ctx .ctxRow span { flex: 1; } #ctx .ctxRow i { font-style: normal; color: #aab0bd; }
#ctx .ctxSub { position: absolute; left: calc(100% + 4px); background: #171a24f2; border: 1px solid #0b0d13; border-radius: 6px; padding: 6px; width: max-content; white-space: nowrap; box-shadow: 0 4px 14px #0008; }
#ctx .ctxSub.left { left: auto; right: calc(100% + 4px); }
/* fenêtre de personnalisation : mêmes couleurs et disposition que PokeMMO */
#panel[data-w=custom] { width: 760px; max-height: 94vh; background: #3a3f42; border: 1px solid #14181b; border-radius: 4px; box-shadow: 0 10px 30px #000b; }
#panel[data-w=custom] .winHead { background: linear-gradient(#4e6876, #33474f); border-bottom: 1px solid #1a2226; padding: 8px 12px; font: 600 14px "MmoName", "Segoe UI", sans-serif; letter-spacing: .02em; }
#panel[data-w=custom] #panelBody { padding: 8px; }
#cuMain { display: flex; flex-direction: column; gap: 10px; min-height: 0; flex: 1; }
#cuMain.hidden, #cuPal.hidden, #cuCv.hidden, #cuImg.hidden { display: none; }
.cuWrap { display: flex; gap: 8px; min-height: 0; flex: 1; }
#panel[data-w=custom] #panelTitle { color: #fff; }
.cuRows.mScroll { background: none; border: 0; flex: 1; display: flex; flex-direction: column; gap: 5px; overflow-y: auto; padding-right: 2px; max-height: none; }
.cuRow { display: flex; align-items: center; gap: 8px; flex: none; }
.cuRow > span { width: 148px; height: 40px; flex: none; display: grid; place-items: center; background: linear-gradient(#55707f, #38505e); border: 1px solid #1c2a31; border-radius: 3px; box-shadow: 0 1px 0 #7d98a666 inset; color: #fff; font: 13px "MmoName", "Segoe UI", sans-serif; text-align: center; line-height: 1.15; }
.cuRow select { -webkit-appearance: none; appearance: none; flex: 1; height: 40px; min-width: 0; padding: 0 22px; border: 1px solid #1f2326; border-radius: 3px; color: #c4c7c9; text-align: center; text-align-last: center; cursor: pointer; font: 13px "MmoName", "Segoe UI", sans-serif;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='12'%3E%3Cpath fill='%23fff' d='M4 0l4 5H0zM4 12L0 7h8z'/%3E%3C/svg%3E") no-repeat right 8px center, linear-gradient(#62676a, #4c5053); }
.cuRow select:hover, .cuRow select:focus { color: #fff; outline: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='12'%3E%3Cpath fill='%23fff' d='M4 0l4 5H0zM4 12L0 7h8z'/%3E%3C/svg%3E") no-repeat right 8px center, linear-gradient(#45494c, #35393b); }
.cuRow select option { background: #3a3f42; color: #fff; }
.cuRow select:disabled { opacity: .45; cursor: default; }
#panel button.cuDot { width: 18px; height: 18px; flex: none; padding: 0; border-radius: 50%; border: 0; box-shadow: none !important; border-image: none !important; background: radial-gradient(circle at 50% 50%, #fff 0 18%, transparent 55%), conic-gradient(#ff4d4d, #ffc640, #5cdc50, #40d0ff, #5a60ff, #ff50e0, #ff4d4d) !important; }
#panel button.cuDot:hover { filter: brightness(1.15); } #panel button.cuDot:disabled { opacity: .3; }
.cuSide { width: 300px; flex: none; display: flex; flex-direction: column; }
.cuView { flex: 1; min-height: 0; display: grid; place-items: center; }
#cuCv, #cuImg, #cuPalCv { image-rendering: pixelated; } #cuCv { max-width: 100%; max-height: 540px; } #cuImg { max-width: 100%; max-height: 340px; min-height: 220px; object-fit: contain; }
.cuNav { display: flex; justify-content: space-between; padding: 0 22px; }
#panel .cuNav button { width: 30px; height: 22px; padding: 0; border: 0 !important; border-image: none !important; box-shadow: none !important; background: #fff !important; }
#panel .cuNav button:hover { background: #cfe4ee !important; }
#panel .cuNav button.cuL { clip-path: polygon(40% 0, 53% 0, 53% 27%, 100% 27%, 100% 73%, 53% 73%, 53% 100%, 40% 100%, 0 50%); }
#panel .cuNav button.cuR { clip-path: polygon(60% 0, 47% 0, 47% 27%, 0 27%, 0 73%, 47% 73%, 47% 100%, 60% 100%, 100% 50%); }
#panel button#cuSet { align-self: flex-end; width: 292px; height: 46px; flex: none; }
#panel[data-w=custom] #cuSet, #panel[data-w=custom] #cuColSet { background: linear-gradient(#54595c, #3f4346) !important; border: 1px solid #1f2326; border-radius: 3px; color: #fff; font: 13px "MmoName", "Segoe UI", sans-serif; }
#panel[data-w=custom] #cuSet:hover, #panel[data-w=custom] #cuColSet:hover { background: linear-gradient(#646a6d, #4d5255) !important; }
#cuPal { display: flex; flex-direction: column; align-items: center; gap: 44px; padding: 14px 10px 80px; min-height: 620px; }
.cuSw { display: grid; grid-template-columns: repeat(16, 34px); gap: 2px; }
.cuSw div { width: 34px; height: 30px; cursor: pointer; border: 1px solid #1a2229; border-radius: 1px; }
.cuSw div:hover { outline: 1px solid #fff8; }
.cuSw div.on { outline: 2px solid #fff; z-index: 1; }
#panel button#cuColSet { width: 148px; height: 48px; }
#cuPal .cuNav { width: 420px; padding: 0; margin-top: 8px; }
.ccPose canvas[data-av] { width: auto; height: 112px; }
.tPic canvas.posed[data-av] { width: auto; height: 336px; align-self: start; margin-top: -39px; }
.skinPick canvas.posed[data-av] { width: auto; height: 70px; }
#crSprites canvas.crSheet, .skinPick canvas.crSheet { width: 60px; height: 84px; image-rendering: pixelated; } /* sprite du jeu à 3 pixels d'écran par pixel, comme en jeu */
/* carte de dresseur façon PokeMMO */
#panel[data-w=team] { width: 560px; }
.pmCard { background: #2a3239; border: 2px solid #11181e; border-radius: 6px; box-shadow: 0 0 0 1px #56636f inset; overflow: hidden; }
.pmHead { display: flex; justify-content: space-between; align-items: center; background: linear-gradient(#d8dee4, #a8b2bb); color: #1d252c; padding: 6px 12px; }
.pmHead b { font-size: 18px; }
.pmLogo { font: 900 15px "Segoe UI", sans-serif; letter-spacing: 1px; color: #e8a020; text-shadow: 1px 1px 0 #6b3a00; }
.pmLogo em { font-style: normal; color: #d84030; }
.pmIssued { text-align: right; font-size: 12px; color: #c8d0d6; padding: 3px 12px; background: #36414b; }
.pmMain { display: flex; gap: 16px; padding: 12px; }
.pmPic { width: 150px; height: 190px; flex: none; display: grid; place-items: center; overflow: hidden; border: 2px solid #56636f; border-radius: 6px; background: repeating-linear-gradient(0deg, #3a4550 0 1px, #2f3a44 1px 12px), repeating-linear-gradient(90deg, #3a4550 0 1px, transparent 1px 12px); background-blend-mode: normal; }
.pmPic img.pose { height: 180px; width: auto; }
.pmPic canvas { image-rendering: pixelated; max-height: 180px; max-width: 146px; }
.pmStats { list-style: none; margin: 0; padding: 4px 0; display: grid; gap: 10px; align-content: center; }
.pmStats li { display: flex; gap: 8px; align-items: center; }
.pmStats img { width: 24px; height: 24px; image-rendering: pixelated; }
.pmStats i { font-style: normal; width: 24px; text-align: center; }
.pmBadges { display: flex; justify-content: space-around; background: #36414b; border-top: 1px solid #11181e; padding: 8px; }
.pmBadges canvas { width: 44px; height: 44px; image-rendering: pixelated; }
/* fiche du Pokédex */
.dexCell { cursor: pointer; } .dexCell:hover { border-color: #cfd8e0; }
#panel[data-w=dexmon] { width: 780px; }
.dxType { display: inline-block; padding: 1px 8px; margin: 1px; border-radius: 3px; color: #fff; font-size: 12px; text-shadow: 1px 1px 0 #0008; }
.dxSum { display: flex; gap: 14px; }
.dxPic { width: 180px; flex: none; display: grid; gap: 6px; justify-items: center; align-content: start; border: 1px dashed #6e7f8f; border-radius: 6px; padding: 8px; }
.dxPic img { width: 128px; height: 128px; image-rendering: pixelated; }
.dxPic img.shadow { filter: brightness(0); opacity: .75; }
.dxPic button:disabled { opacity: .5; cursor: default; }
.dxUnk td { color: #e8edf2; }
.dxMatch .dxHead, .dxMatch .dxUnkV { text-align: center; justify-content: center; }
.dxPic button { width: 100%; }
.dxRows { flex: 1; display: grid; gap: 4px; align-content: start; }
.dxRow { display: grid; grid-template-columns: 130px 1fr; gap: 4px; }
.dxRow b { background: linear-gradient(#56636f, #3b4651); border: 1px solid #11181e; border-radius: 2px; text-align: center; padding: 4px; font-weight: 600; }
.dxRow span { background: #262f37; border: 1px solid #11181e; border-radius: 2px; padding: 4px 8px; }
.dxMatch { max-width: 520px; margin: 0 auto; width: 100%; }
.dxScroll { max-height: 52vh; overflow-y: auto; }
.dxTable td, .dxTable th { text-align: center; }
.dxStats { display: grid; grid-template-columns: 110px 50px 1fr; gap: 4px; max-width: 520px; margin: 8px auto; width: 100%; align-items: center; }
.dxStats b { background: linear-gradient(#56636f, #3b4651); border: 1px solid #11181e; padding: 4px; text-align: center; }
.dxStats span { background: #262f37; padding: 4px; text-align: center; border: 1px solid #11181e; }
.dxStats i { height: 12px; background: #1d252c; border: 1px solid #11181e; border-radius: 6px; overflow: hidden; }
.dxStats em { display: block; height: 100%; }
.dxFamily { display: flex; justify-content: center; padding: 20px; min-height: 200px; align-items: center; overflow-x: auto; }
.dxNode, .dxKid { display: flex; align-items: center; gap: 8px; }
.dxKids { display: grid; gap: 8px; }
.dxArrow { display: grid; justify-items: center; font-size: 20px; color: #cfd8e0; min-width: 70px; }
.dxArrow small { font-size: 11px; color: #c8d0d6; text-align: center; }
.dxEvo { width: 84px; padding: 4px !important; display: grid; justify-items: center; background: #262f37 !important; border: 1px solid #46525d !important; }
.dxEvo.on { border-color: #4cd964 !important; }
.dxEvo img { width: 56px; height: 56px; image-rendering: pixelated; }
.dxEvo img.shadow { filter: brightness(0); opacity: .6; }
.dxEvo span { font-size: 11px; }
#emPop.chDlg { width: 260px; gap: 8px; padding: 10px; }
#emPop .chT { color: #fff; font: 700 13px "Segoe UI"; text-align: center; }
#emPop select { height: 28px; padding: 0 6px; color: #e6e9f0; font: 600 12px "Segoe UI"; background: #0f1320; border: 1px solid #343b50; border-radius: 5px; }
#emPop .chPref { display: flex; align-items: center; gap: 6px; color: #c8cdd8; font: 12px "Segoe UI"; cursor: pointer; }
#emPop .chBtns { display: flex; gap: 6px; }
#emPop .chBtns button { flex: 1; justify-content: center; background: #2a3146; border: 1px solid #3d4560; }
#emPop .chBtns button:hover:not(:disabled) { background: #36405b; }
#watchWin { right: 16px; top: 70px; width: 340px; }
#watchWin .wMons { display: flex; gap: 8px; padding: 10px; }
#watchWin .wMon { flex: 1; display: grid; justify-items: center; gap: 3px; padding: 6px; background: #262626; border-radius: 6px; font-size: 12px; }
#watchWin .wMon small { color: #9aa; }
#watchWin .wMon img { width: 64px; height: 64px; image-rendering: pixelated; }
#watchWin .wMon em { color: #9aa; font-style: normal; font-weight: normal; }
#watchWin .wEmpty { height: 64px; line-height: 64px; color: #666; }
#watchWin .wHp { width: 100%; height: 5px; background: #111; border-radius: 3px; overflow: hidden; }
#watchWin .wHp i { display: block; height: 100%; }
#watchWin .wLog { max-height: 110px; overflow: auto; padding: 0 10px 10px; color: #ccc; font-size: 12px; line-height: 1.45; }
#watchWin .wEnd { margin-top: 4px; color: #f0c020; font-weight: bold; }

/* ===== PC de Stockage, Centre d'Échange Global et Courrier ===== */
#pcAsk { position: fixed; inset: 0; z-index: 25; }
.pcAskBub { position: absolute; left: 50%; top: 3%; transform: translateX(-50%); width: min(880px, 82vw); min-height: 110px; padding: 26px 40px; box-sizing: border-box; background: #fff; border-radius: 34px; color: #2b2b2b; font: 700 25px var(--mmoFont, "Segoe UI"), sans-serif; box-shadow: 0 2px 10px #0004; }
.pcAskTail { position: absolute; inset: 0; pointer-events: none; }
.pcAskMenu { position: absolute; display: grid; gap: 4px; width: 196px; padding: 8px; background: linear-gradient(#4b5359, #2d3236); border: 1px solid #0e1214; border-radius: 4px; box-shadow: 0 6px 18px #0009; }
.pcAskMenu button { background: none; border: 1px solid transparent; border-radius: 3px; color: #e7ecef; padding: 8px 4px; font: 13px var(--mmoFont, "Segoe UI"), sans-serif; cursor: pointer; }
.pcAskMenu.later { visibility: hidden; } /* 1,5 s après la phrase */
body.pcOuvert #party { display: none !important; } /* équipe dans la fenêtre du PC */
.pcAskMenu button.on { background: linear-gradient(#5c666d, #464e54); border-color: #798389; }
.pcw { position: fixed; z-index: 20; color: #e9edf0; font: 13px var(--mmoFont, "Segoe UI"), sans-serif; background: #27303a; border: 1px solid #0b0f12; border-radius: 3px; box-shadow: 0 0 0 1px #8e9aa3 inset, 0 10px 28px #000b; user-select: none; }
.pcw button { font: inherit; color: #eef1f3; cursor: pointer; }
.pcw button:disabled { opacity: .45; cursor: default; }
.pcwHead { display: flex; align-items: center; justify-content: space-between; height: 22px; padding: 0 8px; background: linear-gradient(#a4adb3, #6f7a82); color: #1c2125; font-weight: 700; text-shadow: 0 1px #fff5; cursor: default; border-bottom: 1px solid #0b0f12; }
.pcwX { display: grid; place-items: center; width: 18px; height: 18px; padding: 2px; background: none !important; border: 0; color: #111 !important; box-shadow: none !important; }
.pcwX svg { width: 13px; height: 13px; stroke-width: 4; }
#pcWin { width: 984px; height: 606px; }
#pcWin.big { width: min(1230px, 96vw); height: min(757px, 94vh); }
.pcBody { display: flex; height: calc(100% - 23px); }
.pcLeft { flex: none; width: 276px; background: #1f272f; overflow: hidden; }
.pcStage { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 248px; padding-bottom: 6px; box-sizing: border-box; background: radial-gradient(ellipse at 50% 72%, #4d3e36 0, #2b2522 48%, #181513 100%); }
.pcStage img { flex: 1; min-height: 0; max-width: 100%; object-fit: contain; object-position: bottom; image-rendering: pixelated; width: 180px; }
.pcStage img.aMon { flex: none; width: 172px; height: 172px; position: relative; z-index: 1; } .pcStage .bShadow { display: none; } /* PC : Pokémon animé comme en combat (2026-11-14, sa vidéo), sans ombre comme PokeMMO */
.pcStage h4 { margin: 6px 0 0; font-size: 16px; color: #fff; text-shadow: 1px 1px 2px #000; }
.pcStage b.m, .pcCell b.m, .wTable b.m { color: #57a8f5; } .pcStage b.f, .pcCell b.f, .wTable b.f { color: #f36fae; }
.pcTypes { position: absolute; top: 6px; right: 6px; display: grid; gap: 3px; }
.pcTypes u, .pcMove u { display: inline-block; min-width: 48px; padding: 1px 4px; box-sizing: border-box; text-align: center; font-size: 9px; font-weight: 700; color: #fff; text-decoration: none; text-shadow: 1px 1px 0 #0007; border-radius: 3px; }
.pcEgg { display: block; width: 96px; height: 96px; background-size: 96px 192px; image-rendering: pixelated; margin-bottom: 40px; }
.pcRow { display: flex; align-items: center; gap: 8px; padding: 3px 6px; }
.pcRow label { flex: none; width: 72px; height: 22px; line-height: 22px; text-align: center; font-size: 12px; background: linear-gradient(#54697a, #3b4c5a); border: 1px solid #141a1f; border-radius: 3px; }
.pcRow span { color: #dfe5e9; font-size: 12.500px; }
.pcMarks { display: inline-flex; gap: 3px; }
.pcMarks button { width: 16px; height: 16px; padding: 1px; background: none; border: 0; color: #5a6066; }
.pcMarks button.on { color: #f4e68e; } .pcMarks svg { display: block; width: 100%; height: 100%; }
.pcMove { display: flex; align-items: center; gap: 9px; padding: 4px 8px; font-size: 12.500px; }
.pcMain { position: relative; flex: 1; min-width: 0; display: flex; flex-direction: column; padding: 8px 12px 6px; }
.pcTitle { text-align: center; font-size: 16px; font-weight: 700; height: 36px; line-height: 36px; }
.pcTabs { display: flex; flex-wrap: wrap; gap: 4px; padding: 0 4px 12px; }
.pcTabs button, .pcBatX, .pcAdv, .pcTicket button, .pcDlgBtns button, .pcFind button { min-width: 56px; height: 38px; padding: 0 5px; background: linear-gradient(#454d54, #33393f); border: 1px solid #14181b; border-radius: 3px; box-shadow: 0 1px 0 #6a737a inset; }
.pcTabs button:hover, .pcBatX:hover, .pcAdv:hover, .pcTicket button:hover:not(:disabled), .pcDlgBtns button:hover { background: linear-gradient(#566069, #414950); }
.pcTabs button.on { background: linear-gradient(#3e5569, #2d4254); border-color: #4b9fdc; }
.pcTabs button.hit { box-shadow: 0 0 0 2px #f2cd4b inset; }
.pcTabs button.over, .pcCell.over { outline: 2px solid #f2cd4b; outline-offset: -2px; }
.pcTabs.small button { min-width: 44px; height: 26px; }
.pcMid { display: flex; flex: 1; min-height: 0; gap: 14px; }
.pcArea { flex: 1; min-width: 0; overflow-y: auto; }
.pcGrid { display: grid; grid-template-columns: repeat(10, 1fr); gap: 5px 7px; }
.pcGrid.small { grid-template-columns: repeat(10, 46px); gap: 3px; margin: 6px 0; }
.pcGrid.small .pcCell { height: 40px; }
.pcTeam { flex: none; width: 54px; display: grid; grid-auto-rows: 52px; gap: 5px; }
.pcCell { position: relative; height: 52px; background: linear-gradient(#33383d, #2a2e32); border: 1px solid #1d2125; border-radius: 3px; box-shadow: 0 1px 0 #454a4f inset; overflow: hidden; }
.pcTeam .pcCell { background: linear-gradient(#49525a, #394148); }
.pcCell.sel { border-color: #33aef2; box-shadow: 0 0 0 1px #33aef2; }
.pcCell.hole > * { opacity: .25; }
.pcCell.dim { opacity: .3; }
.pcIc { position: absolute; left: 50%; top: 50%; width: 40px; height: 40px; margin: -22px 0 0 -20px; background-repeat: no-repeat; background-size: 40px 80px; image-rendering: pixelated; pointer-events: none; }
.pcCell span { position: absolute; left: 3px; bottom: 0; font-size: 11px; line-height: 14px; }
.pcCell em { position: absolute; right: 4px; bottom: 0; font-size: 11px; font-style: normal; color: #eef; text-shadow: 1px 1px 0 #000; }
.pcStar { color: #ffe066; text-decoration: none; font-size: 11px; }
.pcCell .pcStar { position: absolute; left: 3px; top: 0; }
.pcHeld { position: absolute; right: 4px; top: 4px; width: 7px; height: 7px; background: #f2cd4b; border-radius: 50%; border: 1px solid #5a4a12; }
.pcLk { position: absolute; right: 2px; top: 13px; width: 10px; height: 10px; color: #fff; } .pcLk svg { display: block; }
.pcGhost { position: fixed; width: 48px; height: 48px; pointer-events: none; } .pcGhost .pcIc { width: 48px; height: 48px; margin: -24px 0 0 -24px; background-size: 48px 96px; }
body.pcDrag, body.pcDrag * { cursor: default !important; }
.pcBats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px 22px; }
.pcBat h6 { margin: 0 0 4px; padding: 6px; font-size: 12.500px; font-weight: 400; background: #1d2329; }
.pcBat > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.pcBatX { grid-column: 1 / 3; justify-self: start; height: 26px; padding: 0 8px; }
.pcTickets { display: grid; gap: 8px; padding-right: 6px; }
.pcTicket { display: flex; gap: 18px; padding: 10px 14px; background: linear-gradient(#454c52, #363b40); border: 1px solid #14181b; border-radius: 3px; }
.pcTicket img { width: 40px; height: 40px; image-rendering: pixelated; }
.pcTicket > div { flex: 1; } .pcTicket p { margin: 5px 0; line-height: 1.35; } .pcTicket b { font-weight: 400; }
.pcTicket button { display: block; width: 62%; height: 28px; margin-top: 6px; }
.pcFoot { display: flex; align-items: center; justify-content: space-between; height: 44px; }
.pcTools { display: grid; grid-template-columns: repeat(5, 22px); gap: 3px; margin-left: 58px; }
.pcTools button { width: 22px; height: 22px; padding: 1px; background: none; border: 0; color: #fff; } .pcTools button:hover:not(:disabled) { color: #6cc2ff; } .pcTools svg { display: block; width: 100%; height: 100%; }
.pcTrash.over { color: #ff6b5e !important; outline: none; transform: scale(1.25); }
.pcFind { display: flex; align-items: center; gap: 6px; }
.pcQ { width: 128px; height: 24px; box-sizing: border-box; background: #20262b; border: 1px solid #14181b; color: #fff; padding: 0 5px; font: inherit; }
.pcFind .pcClear { display: grid; place-items: center; min-width: 0; width: 22px; height: 22px; padding: 3px; border-radius: 50%; background: #f2f4f5; color: #1c2125; } .pcClear svg { width: 100%; height: 100%; stroke-width: 4; }
.pcFind .pcAdv { height: 26px; padding: 0 8px; } .pcAdv.on { border-color: #f2cd4b; }
#pcCtx { position: fixed; inset: 0; pointer-events: none; }
.pcCtxCol { position: fixed; display: grid; min-width: 190px; padding: 5px; pointer-events: auto; font: 13px var(--mmoFont, "Segoe UI"), sans-serif; background: linear-gradient(#454c52, #2d3236); border: 1px solid #0d1114; border-radius: 3px; box-shadow: 0 6px 16px #000b; }
.pcCtxCol button { display: flex; justify-content: space-between; gap: 18px; padding: 6px 10px; text-align: left; font: inherit; color: #eef1f3; background: none; border: 0; border-radius: 2px; cursor: pointer; }
.pcCtxCol button:hover:not(:disabled) { background: #566069; } .pcCtxCol button:disabled { opacity: .45; cursor: default; } .pcCtxCol i { font-style: normal; }
#pcDlg { position: fixed; inset: 0; display: grid; place-items: center; background: #0005; }
.pcDlgBox { max-width: 560px; max-height: 86vh; overflow: auto; padding: 14px 18px; color: #e9edf0; font: 13px var(--mmoFont, "Segoe UI"), sans-serif; background: #2c343b; border: 1px solid #0b0f12; border-radius: 4px; box-shadow: 0 0 0 1px #8e9aa3 inset, 0 10px 28px #000b; }
.pcDlgBox h5 { margin: 0 0 10px; font-size: 14px; } .pcDlgBox p { line-height: 1.45; margin: 0 0 8px; }
.pcDlgBtns { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; } .pcDlgBtns button { height: 28px; padding: 0 14px; color: #eef1f3; font: inherit; cursor: pointer; }
.pcForm { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; } .pcForm label { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .pcForm input:not([type=checkbox]), .pcForm select { width: 110px; background: #20262b; color: #fff; border: 1px solid #14181b; padding: 3px; font: inherit; }
.pcItems { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px; max-height: 340px; overflow: auto; min-width: 380px; } .pcItems button { display: flex; align-items: center; gap: 6px; padding: 4px 6px; color: #eef1f3; font: inherit; text-align: left; background: #3a4249; border: 1px solid #14181b; border-radius: 3px; cursor: pointer; } .pcItems button:hover { background: #4b555d; } .pcItems img { width: 24px; height: 24px; image-rendering: pixelated; } .pcItems span { flex: 1; } .pcItems em { font-style: normal; color: #bcd; }
.pcw.blue { background: #38414a; box-shadow: 0 0 0 1px #5f8199 inset, 0 10px 28px #000b; }
.pcw.blue .pcwHead { background: linear-gradient(#43627a, #36505f); color: #fff; text-shadow: 0 1px 1px #0008; height: 24px; }
.pcw.blue .pcwX { color: #fff !important; }
#cegWin { width: 892px; height: 606px; } #mailWin { width: 856px; height: 590px; }
.pcw.blue { display: flex; flex-direction: column; }
.wTabs { display: flex; gap: 2px; padding: 4px 12px 0; background: #36505f; }
.wTabs button { padding: 5px 15px 4px; color: #eef1f3; font-size: 13px; background: linear-gradient(#333a40, #262b30); border: 1px solid #14181b; border-bottom: 0; border-radius: 8px 8px 0 0; }
.wTabs button.on { background: linear-gradient(#55798f, #3f5c6e); }
.wBody { flex: 1; min-height: 0; display: flex; flex-direction: column; padding: 0 6px 6px; }
.wBar { display: flex; align-items: center; gap: 6px; min-height: 34px; padding: 3px 8px; background: #3f5c6e; border-radius: 0 0 6px 6px; }
.wBar .mInput { flex: 1; min-width: 80px; height: 24px; padding: 2px 6px; box-sizing: border-box; } .wBar .wSel { flex: none; width: 140px; } .wFill { flex: 1; }
.wBar button, .wNew button, .wMail button, .wRead button, .wAtt button { height: 26px; padding: 0 10px; background: linear-gradient(#49535b, #363d43); border: 1px solid #14181b; border-radius: 3px; } .wBar button:hover:not(:disabled), .wNew button:hover:not(:disabled), .wMail button:hover:not(:disabled), .wTable button:hover:not(:disabled) { background: linear-gradient(#5b6670, #464f56); }
.wBar button svg, .wLine button svg { display: block; width: 14px; height: 14px; }
.wChip { display: inline-flex; align-items: center; gap: 3px; padding: 2px 4px 2px 8px; background: #27333b; border-radius: 10px; } .wChip button { height: 16px; padding: 1px; background: none; border: 0; } .wChip svg { width: 11px; height: 11px; }
.wScroll { flex: 1; min-height: 0; overflow: auto; padding: 6px 2px; } .wLog { padding: 16px 12%; }
.wTable { width: 100%; border-collapse: separate; border-spacing: 2px; font-size: 12.500px; }
.wTable th { position: sticky; top: 0; padding: 7px 4px; font-weight: 400; background: linear-gradient(#49667c, #3a5262); border: 1px solid #14181b; border-radius: 2px; z-index: 1; }
.wTable td { padding: 4px 6px; height: 28px; text-align: center; background: #424b53; border-radius: 2px; }
.wTable tr[data-view], .wTable tr[data-mail] { cursor: pointer; } .wTable tr:hover td { background: #4d5760; } .wTable tr.sel td { background: #3f5c6e; } .wTable tr.unread td { color: #ffcb05; font-weight: 700; }
.wTable td.ic { position: relative; width: 38px; padding: 0; } .wTable td.ic .pcIc { width: 32px; height: 32px; margin: -18px 0 0 -16px; background-size: 32px 64px; } .wTable td.ic img { width: 24px; height: 24px; image-rendering: pixelated; vertical-align: middle; }
.wTable td.up { color: #7ee07a; } .wTable td.down { color: #ff8b80; } .wTable td.muted { color: #99a3ab; }
.wTable td button { height: 22px; padding: 0 8px; background: linear-gradient(#49535b, #363d43); border: 1px solid #14181b; border-radius: 3px; }
.wEmpty { text-align: left !important; padding: 8px !important; background: #3a4249 !important; border: 1px solid #5da4d6; } .wEmpty.plain { text-align: center !important; background: none !important; border: 0; }
.wCount { padding: 4px; text-align: center; } .wPager { display: flex; justify-content: center; gap: 8px; padding: 4px; } .wPager button { height: 24px; width: 34px; background: linear-gradient(#59636a, #464e54); border: 1px solid #14181b; border-radius: 3px; }
.wNew { display: grid; gap: 10px; align-content: start; width: 460px; margin: 22px auto 0; }
.wKinds { display: flex; gap: 4px; } .wKinds button { flex: 1; } .wKinds button.on { background: linear-gradient(#55798f, #3f5c6e); }
.wSlot { position: relative; display: flex; align-items: center; gap: 8px; height: 48px !important; padding-left: 50px !important; text-align: left; } .wSlot .pcIc { left: 26px; } .wSlot img { position: absolute; left: 12px; top: 8px; width: 32px; height: 32px; image-rendering: pixelated; } .wSlot .pcIt { position: absolute; left: 14px; font-style: normal; font-size: 22px; }
.wLine { display: flex; align-items: center; gap: 8px; min-height: 28px; } .wLine.top { align-items: flex-start; } .wLine > .mInput { flex: 1; } .wLine b { margin-left: auto; font-weight: 400; color: #ffe699; } .wBtns { justify-content: flex-end; }
.wNew .wLine { justify-content: space-between; } .wNew .wLine .mInput { flex: none; width: 120px; margin-left: auto; }
.wSplit { flex: 1; display: flex; min-height: 0; padding-top: 6px; gap: 6px; } .wListC { flex: 3; min-width: 0; overflow: auto; } .wSide { flex: 2; min-width: 0; display: flex; flex-direction: column; } .wBoxN { padding: 7px; text-align: right; }
.wRead { flex: 1; min-height: 0; overflow: auto; padding: 8px 10px; background: #424b53; border-radius: 3px; user-select: text; } .wRead h4 { margin: 0; font-size: 15px; } .wRead small { color: #b6c0c7; } .wRead p { line-height: 1.4; } .wPick { flex: 1; display: grid; place-items: center; color: #d9dfe3; }
.wAtt { display: grid; gap: 4px; margin: 8px 0; padding: 8px; background: #36505f; border-radius: 3px; } .wAtt > div { position: relative; display: flex; align-items: center; gap: 6px; min-height: 24px; } .wAtt img { width: 24px; height: 24px; image-rendering: pixelated; } .wAtt .pcIc { position: relative; left: 0; top: 0; margin: 0; width: 32px; height: 32px; background-size: 32px 64px; }
.wMail { display: grid; gap: 7px; padding: 12px 20px; align-content: start; } .wMail .wLine { display: grid; grid-template-columns: 140px 1fr auto; } .wMail .wLine b { margin: 0; } .wMail .wBtns { display: flex; }
.wMinis { display: flex; gap: 4px; } .wMini { position: relative; width: 44px !important; height: 44px !important; padding: 0 !important; background: #2f353a !important; } .wMini img { width: 28px; height: 28px; image-rendering: pixelated; } .wMini em { position: absolute; right: 2px; bottom: 0; font-style: normal; font-size: 11px; } .wMini .pcIc { width: 36px; height: 36px; margin: -18px 0 0 -18px; background-size: 36px 72px; }
.wTabs button:hover:not(.on) { background: linear-gradient(#444d55, #30373d); }
/* combat façon PokeMMO (vidéo du 02/11) : fenêtre à 70 % de la largeur au format 1,86, Pokémon plus grands, sprites animés de Noire avec leur ombre,
   coup reçu = silhouette noire qui clignote, K.O. qui s'enfonce d'un coup, caméra qui se promène lentement */
#bscene { padding-top: 3.9vh; }
.bWin { width: min(70.3vw, calc((100vh - 200px) * 1.86)); aspect-ratio: 1.86; }
/* mesuré sur la capture PokeMMO du 02/11 (1914 x 1022) : fenêtre 1345 x 723 à 40 px du haut, nom adverse à 13 %, bande du bas 16 % */
.bWin .bBox.foe { top: 11%; } .bWin .bBar { height: 16%; }
.bWin.bw3d .bMon.front.bw { left: 56.6%; top: 35.2%; width: 18%; }
.bWin.bw3d .bMon.back.bw { left: 6.5%; top: 41.9%; width: 37.2%; }
.bMon.anim { object-position: -9999px 0; --idleY: 0%; --idleS: 1; }
.aMon.anim { object-position: -9999px 0; } /* Résumé du Pokémon : sprite animé de Noire, comme en combat */
@keyframes bIdle { 50% { transform: translateY(var(--idleY, -2%)) scaleY(var(--idleS, 1.03)); } }
.bShadow { position: absolute; pointer-events: none; border-image-width: 0; image-rendering: auto; filter: brightness(0); opacity: .25; transform: scaleY(.22) skewX(-41deg); transition: opacity .35s; }
/* 0.5.543 (sa vidéo test.mp4, Pikachu adverse comparé au banc avec le même sprite et la même pose) : ombre plus plate et moins penchée (0,22 et 41° ; avant 0,3 et 50°, trop longue,
   elle montait vers la droite), sol 25 % plus sombre comme la vidéo (avant 30 %), rendu lissé : en « pixels nets », l'aplatissement sautait des lignes et l'ombre était rayée */
.bShadow.off { opacity: 0; transition: none; }
.bShadow.me { opacity: .235; } /* mon Pokémon : sol 23,5 % plus sombre dans sa vidéo ; forme et place posées par meShadow (app.js) */
.bShadow.me.off { opacity: 0; } /* 0.5.542 : caché tant qu'il n'est pas sorti de sa Ball (« sauvage apparaît ! ») ; .me l'affichait quand même */
.bMon.ko + .bShadow, .bShadow:has(+ .bMon.ko) { opacity: 0; transition: opacity .4s .15s; }
.bMon.hit { animation: bHitMmo 1s steps(1), bIdle 1.2s ease-in-out 1s infinite; }
@keyframes bHitMmo { 0%, 20%, 40% { filter: brightness(0); } 7%, 27%, 47%, 100% { filter: none; } }
.bMon.ko, .bMon.ko.bw { animation: bFaint .2s ease-in forwards !important; }
.bStage { animation: none; transform-origin: 60% 55%; } /* 0.5.380 : caméra fixe tant que le joueur joue */
.bWin.camAfk .bStage { animation: bCamMmo 24s ease-in-out infinite; } /* vidéo « animation afk » : la caméra ne tourne qu'après 30 s sans rien toucher (camIdleTick) */
@keyframes bCamMmo { 0%, 100% { transform: none; } 29% { transform: translate(8%, -3%) scale(1.15); } 58% { transform: translate(4%, -1%) scale(1.09); } 64% { transform: translate(-2%, 0) scale(1.06); } 67% { transform: translate(-2%, 0) scale(1.06); } }
/* sortie du combat comme PokeMMO : plus de fondu au noir, la carte figée reste en pleine lumière le temps que le jeu revienne sur sa carte */
#bscene.outro:not(.keepWin) .bWin:not(:has(#evoWin)) { display: none; }
#bscene.outro:not(.keepWin)::before, #bscene.outro:not(.keepWin)::after { opacity: 0 !important; animation: none !important; }

/* demande de combat façon PokeMMO (capture du 02/11) */
#duelAsk { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 21; width: 330px; padding: 16px 18px 14px; background: #3a4146f2; border: 1px solid #5f6a73; border-radius: 4px; box-shadow: 0 6px 24px #000a; display: grid; gap: 6px; font: 13px "Segoe UI", sans-serif; color: #fff; }
#duelAsk .daTitle, #duelAsk .daRow > span { background: linear-gradient(#4b5359, #3f464c); border: 1px solid #626c74; border-radius: 3px; text-align: center; padding: 6px 4px; }
#duelAsk .daTitle { margin-bottom: 2px; }
#duelAsk .daRow { display: grid; grid-template-columns: 120px 1fr; gap: 6px; align-items: stretch; }
#duelAsk .daRow > span { display: flex; align-items: center; justify-content: center; }
#duelAsk select, #duelAsk button { background: linear-gradient(#4b5359, #3a4046); border: 1px solid #626c74; border-radius: 3px; color: #fff; font: 13px "Segoe UI", sans-serif; padding: 5px; cursor: pointer; text-align: center; text-align-last: center; }
#duelAsk select:disabled { color: #8d959b; cursor: default; }
#duelAsk select option { background: #3a4046; }
#duelAsk button:hover:not(:disabled) { background: linear-gradient(#5a636a, #464d54); border-color: #8a959e; }
#duelAsk button:disabled { opacity: .45; cursor: default; }
#duelAsk .daLvl { display: grid; grid-template-columns: 26px 1fr 26px; gap: 4px; }
#duelAsk .daLvl b { display: flex; align-items: center; justify-content: center; font-weight: 400; background: linear-gradient(#4b5359, #3a4046); border: 1px solid #626c74; border-radius: 3px; }
#duelAsk .daChk { width: 26px; height: 26px; padding: 0; }
#duelAsk .daGap { height: 26px; }
#duelAsk .daBtn { padding: 6px; }

/* météo sur la carte (dessinée par app.js) : au-dessus de la carte, sous la fenêtre de combat (#bscene), le chat et les menus */
#wxFx { position: fixed; inset: 0; z-index: 4; pointer-events: none; image-rendering: pixelated; }
/* météo dans la fenêtre de combat : voile de couleur sur le décor, éclairs de l'orage */
.bWxBg { position: absolute; inset: 0; pointer-events: none; }
.bWxFlash { position: absolute; inset: 0; pointer-events: none; background: #fff; opacity: 0; }

.volRow { display: flex; gap: 6px; align-items: center; font-size: 12px; white-space: nowrap; }
.volRow input[type="range"] { flex: 1; width: 90px; min-width: 60px; padding: 0; }
.volName { margin-right: 4px; }
.volPct { min-width: 38px; text-align: right; font-variant-numeric: tabular-nums; }
button.volBtn, #panel button.volBtn:not(.x) { flex: none; display: grid; place-items: center; width: 22px; height: 22px; padding: 0; color: #e6e9f0; font: 600 15px/1 "Segoe UI", sans-serif; background: #2a3145; border: 1px solid #ffffff2e; border-image: none; border-radius: 5px; box-shadow: none; cursor: pointer; transition: background .12s, border-color .12s; }
button.volBtn:hover, #panel button.volBtn:not(.x):hover { background: #3a4460; border-color: #ffffff59; }
button.volBtn:active, #panel button.volBtn:not(.x):active { background: #20263a; }
.emTop .volRow { margin-right: 8px; }
#bscene #wxFx { z-index: -1; }
#bscene.gbaMode #wxFx { display: none; }

/* chat façon PokeMMO : sombre, translucide, icônes à droite des onglets */
#chat { --chatA: .8; background: rgba(24, 27, 37, var(--chatA)); border: 1px solid #0006; border-radius: 8px; box-shadow: 0 2px 10px #0006; transition: background .4s; overflow: hidden; }
#chat.hidden { display: none; }
#chat .chatTabs { align-items: center; padding: 4px 6px 0; background: none; border: 0; transition: opacity .4s; }
#chat .chatTabs > button { color: #aab2bd !important; border: 0; border-radius: 5px 5px 0 0; padding: 4px 9px; }
#chat .chatTabs > button.on { color: #fff !important; background: #ffffff1a; }
.chatTools { display: flex; gap: 2px; margin-left: auto; }
.chatTools button { display: grid; place-items: center; width: 24px; height: 24px; padding: 3px; color: #e6e9f0; background: none; border: 0; border-radius: 4px; cursor: pointer; }
.chatTools button:hover { background: #ffffff24; } .chatTools svg { width: 100%; height: 100%; }
.chatFlagIc { display: grid; place-items: center; width: 18px; height: 12px; font: 700 9px/1 sans-serif; background: #3a4460; border-radius: 1px; } .chatFlagIc.fr { background: linear-gradient(90deg, #1e4fb0 33%, #fff 33% 66%, #d92b3a 66%); }
#chatLog .sys { color: #8fc5ff; } #chatLog .sys em { color: #fff; font-style: normal; }
#chat .chatRow { padding: 5px 6px; transition: opacity .4s; }
#chat .chatRow .chan, #chat .chatRow button { color: #e6e9f0; background: #ffffff1c; border: 0; border-radius: 6px; padding: 4px 10px; }
#chat .chatRow button:hover { background: #ffffff33; } #chat .chatRow input { background: #0000004d; border: 0; border-radius: 6px; }
#chat.idle { background: rgba(24, 27, 37, calc(var(--chatA) * .55)); } #chat.idle .chatTabs, #chat.idle .chatRow { opacity: .4; }
#chat.locked #chatGrip { display: none; }
#chatOpen { position: fixed; left: 8px; bottom: 8px; z-index: 6; width: 36px; height: 36px; padding: 8px; color: #e6e9f0; background: rgba(24, 28, 36, .8); border: 0; border-radius: 8px; cursor: pointer; } #chatOpen:hover { background: rgb(44, 50, 62); } #chatOpen.unread { box-shadow: 0 0 0 2px #ffcb05; } #chatOpen.hidden { display: none; }
#chatDlg { position: fixed; left: 50%; top: 50%; translate: -50% -50%; z-index: 30; width: min(620px, 92vw); max-height: 86vh; overflow: auto; color: #e6e9f0; font-size: 13px; background: #383c40; border: 1px solid #111; border-radius: 6px; box-shadow: 0 6px 24px #0009; } #chatDlg.hidden { display: none; }
.cdHead { display: flex; justify-content: space-between; align-items: center; padding: 9px 12px; background: linear-gradient(#3d5468, #2f4254); } .cdHead button { color: #fff; font-size: 18px; line-height: 1; background: none; border: 0; cursor: pointer; }
.cdBody { display: grid; gap: 8px; padding: 12px; } .cdBody p { margin: 4px 0; } .cdRow { display: flex; align-items: center; gap: 6px; } .grow { flex: 1; } .cdRow input[type="range"] { flex: 1; min-width: 80px; }
.cdLab { padding: 5px 8px; background: #36505f; border-radius: 3px; } .cdNum { min-width: 26px; text-align: right; }
.cdCols { display: flex; gap: 12px; } .cdTabs { display: grid; align-content: start; gap: 4px; width: 110px; } .cdTabs button { padding: 5px 8px; color: #aab2bd; text-align: left; background: none; border: 0; border-left: 3px solid transparent; cursor: pointer; } .cdTabs button.on { color: #fff; border-left-color: #fff; }
.cdMain { flex: 1; display: grid; gap: 6px; } .cdGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.cdChk { flex: none; width: 24px; height: 24px; padding: 0; color: #7ed957; font-weight: 700; background: #4a4e53; border: 1px solid #222; border-radius: 3px; cursor: pointer; } .cdChk:hover { background: #5a5f65; }
.cdLangs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; } .cdLang { display: flex; align-items: center; gap: 6px; } .cdMid { text-align: center; }
.cdBtn { padding: 6px 12px; color: #e6e9f0; background: #4a4e53; border: 1px solid #222; border-radius: 3px; cursor: pointer; } #chatDlg select, #chatDlg textarea { color: #e6e9f0; background: #2a2d31; border: 1px solid #111; border-radius: 3px; padding: 5px; } #chatDlg textarea { width: 100%; box-sizing: border-box; resize: vertical; }
#chatLinkMenu { position: fixed; z-index: 30; display: flex; align-items: flex-end; gap: 6px; font-size: 13px; } #chatLinkMenu.hidden { display: none; }
.clCol { display: grid; gap: 4px; padding: 6px; background: #24282ef2; border-radius: 6px; box-shadow: 0 3px 12px #0008; color: #e6e9f0; } .clList { max-height: 300px; min-width: 170px; overflow-y: auto; }
.clCol button { display: flex; align-items: center; gap: 6px; padding: 6px 14px; color: #e6e9f0; font: inherit; text-align: left; background: none; border: 0; border-radius: 4px; cursor: pointer; } .clCol button:hover, .clCol button.on { background: #ffffff24; } .clCol img { width: 24px; height: 24px; object-fit: contain; image-rendering: pixelated; }
#chatLog .chatCite { color: #ffd76a; font-weight: 600; }
.cdFlag { flex: none; display: block; width: 21px; height: 14px; border-radius: 2px; box-shadow: 0 0 0 1px #0006; } .chatFlagIc { background: none; } .chatFlagIc .cdFlag { width: 18px; height: 12px; }
.cdEnds { justify-content: space-between; margin-top: 4px; } #chatDlg select { min-width: 220px; }
/* comme PokeMMO : préfixe et pseudo en blanc, message dans la couleur du canal */
#chatLog .chPre { color: #fff; font-style: normal; } #chatLog b, #chatLog .mp b { color: #fff; font-weight: 500; } #chatLog b.friend { color: #6be38a; } #chatLog .normal, #chatLog .global { color: #9cc9ff; }
#chatLog .chatCite.on { cursor: pointer; } #chatLog .chatCite.on:hover { text-decoration: underline; }
.clIc { display: inline-block; flex: none; width: 24px; height: 24px; margin-right: 3px; vertical-align: middle; image-rendering: pixelated; object-fit: contain; } .clIc.mon { background: 0 0 / 24px 48px no-repeat; }
.cfMon { display: flex; gap: 12px; flex-wrap: wrap; } .cfLeft { flex: 1 1 230px; display: grid; align-content: start; gap: 5px; } .cfRight { flex: 1 1 230px; display: grid; gap: 6px; }
.cfRow { display: flex; justify-content: space-between; gap: 8px; padding: 4px 8px; background: #2a2d31; border-radius: 3px; } .cfRow span { color: #b8c0ca; }
.cfStats { width: 100%; margin-top: 4px; border-collapse: collapse; } .cfStats th, .cfStats td { padding: 2px 6px; text-align: right; } .cfStats td:first-child { text-align: left; color: #b8c0ca; }
.cfTop { display: flex; justify-content: space-between; padding: 5px 8px; background: #2f4254; border-radius: 3px 3px 0 0; } .cfPic { display: block; width: 128px; height: 128px; margin: 0 auto; object-fit: contain; image-rendering: pixelated; }
.cfTypes { display: flex; gap: 4px; } .cfTypes u, .cfMoves u { padding: 1px 6px; color: #fff; font-size: 11px; text-decoration: none; border-radius: 3px; }
.cfMoves { display: grid; gap: 3px; } .cfMoves div { display: flex; align-items: center; gap: 6px; } .cfMoves b { flex: 1; font-weight: 500; } .cfMoves em { font-style: normal; color: #b8c0ca; }
.cfItemLine { padding: 5px 8px; background: #2a2d31; border-radius: 3px; } .cfItem { display: flex; gap: 10px; align-items: flex-start; } .cfItem img { width: 36px; height: 36px; image-rendering: pixelated; } .cfItem p { margin: 4px 0 0; }
/* couleurs relevées sur la capture du chat Global de PokeMMO : citation claire, jaune pour un chromatique, icône devant le nom */
#chatLog { font-size: 13px; line-height: 1.5; text-shadow: none; }
#chatLog .chPre { color: #f2f4f7; } #chatLog b, #chatLog .mp b { color: #e8ebef; font-weight: 400; } #chatLog .normal, #chatLog .global { color: #93b9e6; }
#chatLog .chatCite { color: #cfe2fb; font-weight: 400; } #chatLog .chatCite.shiny { color: #ffe93b; }
#chatLog .clIc { width: 30px; height: 30px; margin: -3px 2px -3px 6px; } #chatLog .clIc.mon { background-size: 30px 60px; }
/* barre du chat, toujours visible : molette, ou glisser avec le clic gauche */
#chat #chatLog { overflow-y: scroll; }
#chatLog::-webkit-scrollbar { width: 8px; } #chatLog::-webkit-scrollbar-track { background: #00000040; border-radius: 4px; } #chatLog::-webkit-scrollbar-thumb { background: #aeb6c1; border-radius: 4px; } #chatLog::-webkit-scrollbar-thumb:hover { background: #d5dae1; }
@supports not selector(::-webkit-scrollbar) { #chatLog { scrollbar-width: thin; scrollbar-color: #aeb6c1 #00000040; } }
/* mesures relevées sur la capture du chat PokeMMO (647 x 313) */
#chat { min-width: 420px; }
#chat .chatTabs { height: 32px; padding: 3px 8px 0; box-sizing: border-box; gap: 2px; }
#chat .chatTabs > button { height: 28px; padding: 0 9px; font-size: 13px; border-radius: 5px; }
.chatTools { gap: 3px; } .chatTools button { width: 22px; height: 22px; padding: 2px; } .chatFlagIc .cdFlag { width: 18px; height: 12px; }
#chat #chatLog { padding: 4px 4px 4px 6px; }
#chat .chatRow { align-items: stretch; gap: 6px; height: 40px; padding: 5px 6px 7px; box-sizing: border-box; }
#chat .chatRow .chan, #chat .chatRow button { display: flex; align-items: center; padding: 0 12px; font-size: 13px; border-radius: 7px; cursor: pointer; }
#chat .chatRow .chan { cursor: default; } #chat .chatRow input { min-width: 0; padding: 0 8px; font-size: 13px; background: #00000059; border: 1px solid #ffffff14; border-radius: 7px; } #chat .chatRow input:focus { outline: 0; border-color: #ffffff40; }
#chatGrip { width: 12px; height: 12px; background: none; }
#chatLog .echange { color: #f0c35a; } #chatLog .crier { color: #ffb066; }
#chatLog .combat { color: #d7dde6; }
/* barres mesurées sur combat.mp4 : PV en 0,35 s, EXP bleu foncé sur fond clair, cerclée de noir (animée par app.js) */
.bHp i { transition: width .7s ease-out; } /* 0.5.306 : 2 fois moins vite (sa demande du 2026-11-09) ; HP_BAR_MS dans app.js */
.bBox.foe .bHp i { transition: width 1.4s ease-out; } /* barre de l'adversaire 2 fois moins vite (2026-11-08), puis encore 2 fois (2026-11-09) ; HP_BAR_FOE_MS */
.bBox .bXp { background: #e6e1e1; border: 1px solid #141414; border-radius: 3px; overflow: hidden; } .bBox .bXp i { background: #3b3597; }

/* Sac sur la carte, comme PokeMMO : tailles mesurées sur ses captures (fenêtre 539 x 352, cases 40 x 41 tous les 45 x 47) */
#panel[data-w=bag].win { left: 41%; top: 43.6%; transform: none; width: 539px; height: 352px; max-height: none; overflow: visible; background: #343a40; border: 1px solid #1c2024; border-radius: 3px; box-shadow: 0 4px 14px #0007; color: #fff; font: 13px var(--mmoFont); letter-spacing: .02em; }
#panel[data-w=bag] .winHead { display: flex; align-items: center; justify-content: space-between; height: 36px; box-sizing: border-box; padding: 0 8px 0 15px; background: linear-gradient(#47616f, #2f4351); border: 0; border-bottom: 1px solid #1c2024; border-radius: 2px 2px 0 0; color: #fff; text-shadow: none; font: 600 13px var(--mmoFont); letter-spacing: .03em; }
#panel[data-w=bag] .winHead .x { color: #fff; font-size: 0; padding: 0; width: 16px; }
#panel[data-w=bag] .winHead .x::before { content: "✖"; font-size: 12px; }
#panel[data-w=bag] #panelBody { padding: 0; display: block; overflow: visible; }
#panel[data-w=bag].win button:not(.x) { background: none; border: 0; border-image: none; box-shadow: none; border-radius: 0; padding: 0; color: #fff; text-shadow: none; font: inherit; letter-spacing: inherit; }
.bagTabs { position: absolute; left: 10px; bottom: 100%; display: flex; gap: 5.3px; align-items: flex-end; }
#panel[data-w=bag].win .bagTabs button:not(.x) { width: 60px; height: 24px; display: grid; place-items: center; overflow: hidden; clip-path: polygon(0 100%, 8% 30%, 16% 0, 84% 0, 92% 30%, 100% 100%); background: linear-gradient(#34383d, #24282c); }
#panel[data-w=bag].win .bagTabs button.on:not(.x) { height: 27px; background: linear-gradient(#47616f, #47616f); }
#panel[data-w=bag].win .bagTabs button:not(.x):hover { background: linear-gradient(#454a50, #30353a); }
#panel[data-w=bag].win .bagTabs button.on:not(.x):hover { background: linear-gradient(#47616f, #47616f); }
.bagTabs img { display: block; margin: -4px; image-rendering: pixelated; filter: grayscale(1) brightness(1.25); }
.bagTabs .on img { filter: none; }
.bagSearch { position: absolute; right: 30px; top: 4px; width: 180px; height: 28px; box-sizing: border-box; padding: 0 6px; background: #30465560; background-color: #2f4655; border: 1px solid #22313c; border-radius: 2px; color: #fff; font: 13px var(--mmoFont); outline: 0; }
.bagScroll { position: absolute; left: 0; right: 0; top: 36px; bottom: 0; box-sizing: border-box; padding: 10px 12px 6px 19px; overflow: hidden auto; }
.bagScroll::-webkit-scrollbar { width: 3px; } .bagScroll::-webkit-scrollbar-thumb { background: #fff; border-radius: 2px; } .bagScroll::-webkit-scrollbar-track { background: transparent; }
.bagSec { margin-bottom: 7px; } .bagSec h6 { margin: 0 0 6px; font: 13px/16px var(--mmoFont); letter-spacing: .02em; color: #fff; }
.bagGrid { display: grid; grid-template-columns: repeat(11, 40px); gap: 6px 5px; }
#panel[data-w=bag].win button.bagCell:not(.x) { position: relative; width: 40px; height: 41px; box-sizing: border-box; background: #3b4147; border: 1px solid #24282c; border-radius: 3px; overflow: hidden; }
#panel[data-w=bag].win button.bagCell:not(.x):hover, #panel[data-w=bag].win button.bagCell.on:not(.x) { border-color: #9aa3aa; background: #474e54; }
.bagCell img, .bagCell i { position: absolute; left: 50%; top: 14px; transform: translate(-50%, -50%); image-rendering: pixelated; font-style: normal; font-size: 18px; }
.bagCell b { position: absolute; left: 0; right: 0; bottom: 2px; font: 12px/14px var(--mmoFont); text-align: center; }
.bagTms { display: grid; grid-template-columns: repeat(2, 194px); gap: 8px 7px; }
#panel[data-w=bag].win button.bagTm:not(.x) { display: flex; align-items: center; height: 33px; box-sizing: border-box; background: linear-gradient(#4f565c, #3d4349); border: 1px solid #24282c; border-radius: 3px; overflow: hidden; }
#panel[data-w=bag].win button.bagTm:not(.x):hover { background: linear-gradient(#5e656b, #4a5056); }
.bagTm img { flex: none; margin-left: 2px; image-rendering: pixelated; } .bagTm span { flex: 1; text-align: center; font-size: 12px; padding-right: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bagMenu { position: absolute; z-index: 5; display: grid; min-width: 100px; padding: 2px; background: linear-gradient(#3f454b, #2f3439); border: 1px solid #1c2024; border-radius: 3px; box-shadow: 0 3px 10px #0008; font-size: 13px; }
.bagMenu span { height: 27px; line-height: 27px; margin: 1px 0; padding: 0 9px; text-align: center; white-space: nowrap; border: 1px solid transparent; border-radius: 2px; cursor: pointer; }
.bagMenu span:hover { background: linear-gradient(#5a6168, #474d53); border-color: #6c747b; }
.bagMenu > span:first-child { background: linear-gradient(#50575d, #41474c); border-color: #5e666c; }
.bmHas { position: relative; }
.bagSub { display: none; position: absolute; left: calc(100% + 4px); top: -3px; min-width: 90px; padding: 2px; background: linear-gradient(#3f454b, #2f3439); border: 1px solid #1c2024; border-radius: 3px; box-shadow: 0 3px 10px #0008; }
.bmHas::after { content: ""; position: absolute; left: 100%; top: 0; bottom: 0; width: 5px; }
.bmHas:hover .bagSub { display: grid; }
.bagMenu em { padding: 6px 9px; font-style: normal; text-align: center; white-space: nowrap; }
/* Jeter l'Objet façon PokeMMO : « Combien de … vous voulez détruire ? » en haut à gauche du sac. Mesures de la capture : 332 px de large, marges de 17 px,
   -, nombre, + puis Tous à part ; Accepter (bord bleu) et Annuler sur toute la largeur, boutons de 26 px espacés de 8 px */
.bagAsk { position: absolute; left: 8px; top: 9px; z-index: 6; width: 332px; box-sizing: border-box; padding: 16px 17px 17px; background: #363c41; border: 1px solid #1f2327; border-radius: 4px; box-shadow: 0 4px 14px #0009; font-size: 13px; }
.bagAsk p { margin: 0 0 6px; text-align: center; line-height: 18px; }
.baQty { display: flex; align-items: center; gap: 3px; }
.baQty input { flex: 1; min-width: 0; height: 26px; box-sizing: border-box; padding: 0; color: #fff; font: 13px var(--mmoFont); text-align: center; background: linear-gradient(#4b5258, #3a4045); border: 1px solid #23282c; border-radius: 3px; outline: 0; }
#panel[data-w=bag].win .bagAsk button:not(.x) { height: 26px; box-sizing: border-box; background: linear-gradient(#4a5157, #3e4449); border: 1px solid #262b30; border-radius: 3px; cursor: default; }
#panel[data-w=bag].win .bagAsk button:not(.x):hover { background: linear-gradient(#566c7b, #3f5361); border-color: #1c2a33; }
#panel[data-w=bag].win .baQty button:not(.x) { flex: none; width: 26px; }
#panel[data-w=bag].win .baQty button.baAll:not(.x) { width: 40px; margin-left: 17px; }
#panel[data-w=bag].win .bagAsk > button:not(.x) { display: block; width: 100%; margin-top: 8px; }
#panel[data-w=bag].win .bagAsk > button.baYes:not(.x) { border-color: #6fa8cf; background: linear-gradient(#4f6b7d, #3a4f5d); }
/* infobulle : capture de PokeMMO, fond blanc, bord bleu, flèche vers l'objet, 258 px de large */
.bagTip, #hotTip { position: absolute; z-index: 6; box-sizing: border-box; max-width: 258px; width: max-content; padding: 7px; transform: translate(-50%, calc(-100% - 5px)); background: #fff; color: #222; border: 1px solid #2f77b5; font: 13px/18px var(--mmoFont); white-space: pre-line; pointer-events: none; animation: tipIn .15s ease-out; }
.bagTip::after, #hotTip::after { content: ""; position: absolute; left: 50%; top: 100%; margin-left: -5px; border: 5px solid transparent; border-top-color: #fff; border-bottom: 0; }
@keyframes tipIn { from { opacity: 0; } }
#hotTip { position: fixed; z-index: 7; transform: translateX(-50%); }
#hotTip::after { top: auto; bottom: 100%; border: 5px solid transparent; border-bottom-color: #fff; border-top: 0; }
#hotTip.hidden { display: none; }
.bagTip.hidden { display: none; }
.bagPick { position: absolute; left: 8px; top: 49px; display: grid; grid-template-columns: 224px 224px; gap: 11px 6px; }
#panel[data-w=bag].win button.bpCard:not(.x) { position: relative; width: 224px; height: 48px; box-sizing: border-box; background: linear-gradient(#73787d, #54595e); border: 1px solid #282c30; border-radius: 2px; text-align: left; font-size: 12px; }
#panel[data-w=bag].win button.bpCard:not(.x):hover:not(:disabled) { box-shadow: 0 0 0 1px #e8c84a; border-color: #e8c84a; }
#panel[data-w=bag].win button.bpCard.empty:not(.x) { background: repeating-linear-gradient(135deg, #2b2f33 0 4px, #33373b 4px 8px); cursor: default; opacity: 1; }
#panel[data-w=bag].win button.bpCard.empty:not(.x):hover { background: repeating-linear-gradient(135deg, #27305a 0 4px, #2e3866 4px 8px); }
.bpIc { position: absolute; left: 3px; top: 3px; width: 40px; height: 40px; box-sizing: border-box; background: linear-gradient(#a2a2a2, #707070) ; border: 1px solid #55595d; border-radius: 2px; background-repeat: no-repeat; }
.bpCard:not(.empty) .bpIc { background: linear-gradient(#a2a2a2, #707070); }
.bpCard:not(.empty) .bpIc[style] { background: 3px 3px / 32px 64px no-repeat, linear-gradient(#a2a2a2, #707070); }
.bpCard.empty .bpIc { background: #5c5f62; border-color: #44474a; }
.bpN { position: absolute; left: 50px; top: 3px; } .bpL { position: absolute; right: 8px; top: 3px; } .bpP { position: absolute; left: 50px; top: 28px; }
.bpB { position: absolute; left: 50px; right: 6px; top: 20px; height: 6px; background: #1e2226; border-radius: 3px; overflow: hidden; } .bpB i { display: block; height: 100%; }
#panel[data-w=bag].win button.bagNo:not(.x) { position: absolute; right: 6px; bottom: 6px; width: 95px; height: 27px; display: flex; align-items: center; justify-content: center; gap: 8px; background: linear-gradient(#70757a, #55595d); border: 1px solid #2a2e32; border-radius: 2px; font-size: 13px; }
.bagNo i { display: grid; place-items: center; width: 14px; height: 14px; border-radius: 50%; background: #e8e8e8; color: #333; font: 700 10px "Segoe UI", sans-serif; }
#bagToast { position: fixed; left: 50%; bottom: 105px; transform: translateX(-50%); z-index: 900; padding: 8px 10px; background: #2c3136; border: 1px solid #16191c; border-radius: 3px; color: #fff; font: 13px var(--mmoFont); letter-spacing: .02em; pointer-events: none; }
#bagToast.hidden { display: none; }

/* capacités (PP, oubli) et CT : tailles de sac fix.mp4 */
.bagMoves { position: absolute; left: 8px; top: 49px; display: grid; grid-template-columns: 207px 207px; gap: 8px 11px; }
#panel[data-w=bag].win button.bmvCard:not(.x) { position: relative; width: 207px; height: 56px; box-sizing: border-box; background: linear-gradient(#73787d, #54595e); border: 1px solid #282c30; border-radius: 2px; text-align: left; font-size: 13px; }
#panel[data-w=bag].win button.bmvCard:not(.x):hover:not(:disabled) { box-shadow: 0 0 0 1px #e8c84a; border-color: #e8c84a; }
.bmvCard span { position: absolute; left: 9px; top: 7px; } .bmvCard small { position: absolute; left: 9px; bottom: 7px; font-size: 12px; }
.bmvCard i { position: absolute; right: 7px; top: 7px; padding: 0 6px; border-radius: 3px; font: 10px/15px var(--mmoFont); font-style: normal; text-transform: uppercase; text-shadow: 0 1px 0 #0006; }
.bagTmPick { position: absolute; left: 50px; top: 56px; display: grid; grid-template-columns: 207px 207px; gap: 7px 11px; }
#panel[data-w=bag].win button.btmCard:not(.x) { position: relative; width: 207px; height: 49px; box-sizing: border-box; display: grid; place-content: center; justify-items: center; background: linear-gradient(#6d7277, #54595e); border: 1px solid #282c30; border-radius: 2px; font-size: 14px; }
#panel[data-w=bag].win button.btmCard:not(.x):hover:not(:disabled) { box-shadow: 0 0 0 1px #8fc0e8; border-color: #8fc0e8; }
.btmCard small { font-size: 11px; color: #d8dce0; } .btmIc { position: absolute; left: 6px; top: 8px; width: 32px; height: 32px; background: 0 0 / 32px 64px no-repeat; }
/* barre de raccourcis : 428 x 51, cases 40 x 40 tous les 44 px, mesurées sur les captures */
#hotBar { position: fixed; left: 50%; top: 9px; z-index: 6; transform: translateX(-50%); display: flex; align-items: center; gap: 4px; box-sizing: border-box; height: 51px; padding: 0 5px 0 4px; background: #171a26; border: 1px solid #262a38; border-radius: 7px; box-shadow: 0 2px 6px #0006; }
#hotBar.hidden { display: none; }
.hotPg { display: grid; justify-items: center; width: 24px; color: #fff; font: 700 13px/15px var(--mmoFont); }
.hotPg svg { display: block; }
.hotPg button { width: 22px; height: 13px; padding: 0; background: none; border: 0; color: #cfd2da; font: 12px/10px "Segoe UI", sans-serif; cursor: pointer; } .hotPg button:hover { color: #fff; }
.hotCell { position: relative; width: 40px; height: 40px; padding: 0; background: #151824; border: 1px dashed #4a4f60; border-radius: 3px; cursor: default; }
.hotCell.on { background: #1f2436; border: 1px solid #1f2436; } .hotCell:hover { border-color: #8d93a6; } .hotCell.none img { opacity: .35; }
.hotCell u { position: absolute; left: 3px; top: 1px; color: #e4e4e8; font: 10px/12px var(--mmoFont); text-decoration: none; }
.hotCell img { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); image-rendering: pixelated; }
.hotCell b { position: absolute; right: 2px; bottom: 1px; color: #fff; font: 11px/12px var(--mmoFont); text-shadow: 1px 1px 0 #000; }

/* barre de menu, comme PokeMMO : 370 x 41, boutons tous les 34 px, fenêtre MENU de 207 px au-dessus */
#menu { right: 8px; bottom: 8px; gap: 0; align-items: center; box-sizing: border-box; height: 41px; padding: 0 4px; background: #1a1d2bf2; border: 1px solid #2a2e3d; border-radius: 7px; box-shadow: 0 2px 6px #0006; }
#menu button { position: relative; width: 34px; height: 33px; padding: 0; justify-content: center; background: none; border: 0; border-radius: 5px; color: #cfd2dc; filter: none; box-shadow: none; }
#menu button:hover, #menu button.on { background: #2c3142; color: #fff; }
#menu button > svg { width: 18px; height: 18px; }
#menu .mSep { flex: none; width: 1px; height: 20px; margin: 0 5px; background: #3a3f50; }
#menu button .mTipB { display: none; position: absolute; left: 50%; bottom: calc(100% + 11px); transform: translateX(-50%); align-items: center; gap: 8px; height: 26px; padding: 0 7px; white-space: nowrap; background: #1a1d2bf2; border: 1px solid #2a2e3d; border-radius: 5px; color: #fff; font: 13px var(--mmoFont); pointer-events: none; }
#menu button .mTipB.end { left: auto; right: 0; transform: none; }
#menu button:hover .mTipB { display: flex; }
#menu kbd { padding: 0 5px; background: #2c3142; border-radius: 3px; font: 11px/17px var(--mmoFont); }
#menuPop { position: fixed; right: 8px; bottom: 59px; z-index: 6; box-sizing: border-box; width: 207px; padding: 7px 5px 6px; background: #1a1d2bf5; border: 1px solid #2a2e3d; border-radius: 7px; box-shadow: 0 3px 10px #0007; color: #fff; font: 14px var(--mmoFont); }
#menuPop.hidden { display: none; }
#menuPop h6 { margin: 0 7px 5px; color: #8d91a0; font: 11px/14px var(--mmoFont); letter-spacing: .05em; }
#menuPop button { display: flex; align-items: center; gap: 9px; width: 100%; height: 31px; padding: 0 8px; background: none; border: 0; border-radius: 4px; color: #fff; font: 600 14px var(--mmoFont); text-align: left; cursor: pointer; }
#menuPop button:hover { background: #2c3142; }
#menuPop button > svg { flex: none; width: 15px; height: 15px; color: #cfd2dc; } #menuPop button span { flex: 1; }
#menuPop small svg { display: block; width: 11px; height: 11px; color: #70748a; }
#menuPop hr { height: 1px; margin: 4px 7px; background: #3a3f50; border: 0; }
#menuPop button.red, #menuPop button.red > svg { color: #ef7470; }
/* carte de dresseur : capture de PokeMMO, 453 x 285, sans barre de titre */
#panel[data-w=team].win { left: 37px; top: 48px; transform: none; width: 453px; height: 285px; max-height: none; padding: 0; overflow: visible; background: none; border: 0; box-shadow: none; }
#panel[data-w=team] .winHead { display: none; }
#panel[data-w=team] #panelBody { display: block; height: 100%; padding: 0; overflow: visible; }
#panel[data-w=team] .pmCard { position: relative; width: 453px; height: 285px; box-sizing: border-box; overflow: hidden; background: linear-gradient(#2c343b, #1b2126); border: 2px solid #12161a; border-radius: 7px; box-shadow: 0 3px 10px #0008; color: #fff; font: 13px var(--mmoFont); }
#panel[data-w=team] .pmHead { position: absolute; left: 0; right: 0; top: 0; height: 46px; box-sizing: border-box; padding: 12px 0 0 0; background: linear-gradient(#e3e8ec, #aeb9c2); color: #2f353a; display: block; }
#panel[data-w=team] .pmHead b { display: block; width: 292px; height: 24px; box-sizing: border-box; padding: 0 10px; background: repeating-linear-gradient(135deg, #88949e 0 2px, #7d8994 2px 4px); border: 1px solid #5f6a73; border-left: 0; color: #2b3035; font: 700 17px/22px var(--mmoFont); }
#panel[data-w=team] .pmLogo { position: absolute; right: 9px; top: 13px; color: #e0bc2a; font: 900 14px/22px "Segoe UI", sans-serif; letter-spacing: 0; text-shadow: 1px 1px 0 #6d5a10; }
#panel[data-w=team] .pmLogo em { color: #e0bc2a; font-weight: 400; letter-spacing: 2px; }
#panel[data-w=team] .pmIssued { position: absolute; right: 0; top: 46px; width: 158px; height: 18px; box-sizing: border-box; padding: 0 28px 0 0; background: #39434c; clip-path: polygon(0 0, 100% 0, 100% 100%, 12px 100%); color: #e4e8ec; font: 12px/18px var(--mmoFont); text-align: right; }
#panel[data-w=team] .pmMain { position: absolute; left: 21px; top: 50px; display: flex; gap: 22px; padding: 0; }
#panel[data-w=team] .pmPic { width: 124px; height: 167px; box-sizing: border-box; border: 2px solid #76818b; border-radius: 6px; background: repeating-linear-gradient(0deg, #3d464e 0 1px, #2f373e 1px 11px), repeating-linear-gradient(90deg, #3d464e 0 1px, #2f373e 1px 11px); background-blend-mode: lighten; }
#panel[data-w=team] .pmPic img.pose { height: 150px; }
#panel[data-w=team] .pmPic canvas { max-height: 150px; max-width: 118px; }
#panel[data-w=team] .pmStats { padding: 12px 0 0; display: grid; gap: 7px; align-content: start; }
#panel[data-w=team] .pmStats li { display: flex; gap: 5px; align-items: center; height: 23px; }
#panel[data-w=team] .pmStats img { width: 22px; height: 22px; margin: 0; }
#panel[data-w=team] .pmStats i { width: 22px; font-size: 15px; }
#panel[data-w=team] .pmBadges { position: absolute; left: 0; right: 0; bottom: 0; height: 61px; box-sizing: border-box; display: flex; justify-content: flex-start; gap: 10px; padding: 8px 0 0 36px; background: linear-gradient(#566975, #2d3840); border: 0; border-top: 1px solid #12161a; }
#panel[data-w=team] .pmBadges span { display: grid; place-items: center; width: 38px; height: 36px; box-sizing: border-box; background: #222a30; border: 1px solid #39444d; }
#panel[data-w=team] .pmBadges canvas { width: 32px; height: 32px; image-rendering: pixelated; }
body.winMoving, body.winMoving * { cursor: default !important; user-select: none; }
#hotBar, #panel .winHead { cursor: default; } #panel .bagCell:not(.x), #panel .bagTm:not(.x) { cursor: default; }
#hotTip.hotUp::after { top: 100%; bottom: auto; border: 5px solid transparent; border-top-color: #fff; border-bottom: 0; }
.bagFlipX .bagSub { left: auto; right: calc(100% + 4px); } .bagFlipY .bagSub { top: auto; bottom: -3px; }
#partyCtl { display: flex; align-items: center; justify-content: space-between; margin-top: 3px; }
#partyDir { position: relative; display: grid; place-items: center; box-sizing: border-box; width: 20px; height: 16px; color: #aab1c0; background: #232937; border: 1px solid #3a4252; border-radius: 3px; } #partyDir:hover { color: #fff; border-color: #6a7488; }
#partyDir svg { fill: none; stroke: currentColor; stroke-width: 1; }
#partyDir span { display: none; position: absolute; right: 0; bottom: calc(100% + 7px); height: 26px; padding: 0 7px; line-height: 26px; white-space: nowrap; color: #fff; font: 13px/26px var(--mmoFont); background: #1a1d2bf2; border: 1px solid #2a2e3d; border-radius: 5px; pointer-events: none; } #partyDir:hover span { display: block; }
#party.pRow { display: flex; gap: 4px; width: auto; } #party.pRow #partyList { grid-auto-flow: column; grid-auto-columns: 52px; }
#party.pRow #partyCtl { flex-direction: column; justify-content: space-between; margin-top: 0; padding: 2px 0; }
#partyGrip { height: 13px; cursor: default; background: radial-gradient(circle, #aab1c0 1px, transparent 1.4px) 0 0 / 4px 4px; width: 12px; }
#party.winEdit { border-color: #e8c84a; box-shadow: 0 0 0 1px #e8c84a, 0 3px 12px #0008; }
#partyGrip:hover { background-image: radial-gradient(circle, #5fd38a 1px, transparent 1.4px); } #party.winEdit #partyGrip { background-image: radial-gradient(circle, #e8c84a 1px, transparent 1.4px); }

body.martOn #dialog, body.martOn #dialogTail { display: none !important; }
#panel[data-w=mart].win { left: calc(50% - 252px); top: calc(50% - 194px); transform: none; width: 504px; height: 388px; box-sizing: border-box; max-height: none; overflow: visible; background: linear-gradient(#4a6473, #384a55 56px, #30363b 56px); border: 1px solid #16191c; border-radius: 4px; box-shadow: 0 4px 14px #0008; color: #fff; font: 13px var(--mmoFont); letter-spacing: .02em; }
#panel[data-w=mart] .winHead { display: flex; align-items: center; justify-content: space-between; height: 26px; box-sizing: border-box; padding: 0 9px 0 6px; background: none; border: 0; color: #fff; text-shadow: none; font: 600 13px var(--mmoFont); letter-spacing: .03em; }
#panel[data-w=mart] .winHead .x { color: #0e1215; font-size: 0; padding: 0; width: 14px; }
#panel[data-w=mart] .winHead .x::before { content: "✖"; font-size: 12px; }
#panel[data-w=mart] #panelBody { padding: 0; display: block; overflow: visible; }
.mMart { position: relative; height: 360px; }
html body #panel[data-w=mart] button:not(.x) { color: #fff; font: 13px/1 var(--mmoFont); cursor: default; background: linear-gradient(#4a5157, #3e4449); border: 1px solid #262b30; border-image: none; border-radius: 3px; padding: 0; box-shadow: none; text-shadow: none; outline: 0; } html body #panel[data-w=mart] button:not(.x):hover:not(:disabled) { background: linear-gradient(#566c7b, #3f5361); border: 1px solid #1c2a33; border-image: none; box-shadow: none; }
html body #panel[data-w=mart] .mmTabs button:not(.x) { position: absolute; top: 4px; height: 25px; border-bottom: 0; border-radius: 10px 10px 0 0; background: linear-gradient(#2a2e32, #212529); color: #dfe3e6; box-shadow: none; } html body #panel[data-w=mart] .mmTabs button.on:not(.x), html body #panel[data-w=mart] .mmTabs button.on:not(.x):hover { z-index: 1; background: linear-gradient(#4b5359, #30363b); color: #fff; }
#panel[data-w=mart] .mmTabs button[data-id=buy]:not(.x) { left: 308px; width: 76px; } #panel[data-w=mart] .mmTabs button[data-id=sell]:not(.x) { left: 391px; width: 80px; }
.mmInfo { position: absolute; left: 5px; top: 30px; bottom: 4px; width: 289px; box-sizing: border-box; display: flex; flex-direction: column; background: #32373c; border: 1px solid #1f2327; border-radius: 3px 3px 0 3px; }
.mmText { flex: 1; padding: 14px 12px 0; overflow: hidden; line-height: 18px; } .mmText b { display: block; font-weight: 400; } .mmText p { margin: 5px 0 0; white-space: normal; }
.mmCost { padding: 0 12px 12px; }
.mmFoot { padding: 8px 8px 10px; border-top: 1px solid #1f2327; }
.mmLine { display: flex; gap: 18px; padding-bottom: 6px; white-space: nowrap; }
.mmQty { display: flex; gap: 3px; align-items: center; margin-bottom: 5px; }
#panel[data-w=mart] .mmQty button:not(.x) { width: 27px; height: 24px; }
.mmQty input { width: 73px; height: 24px; box-sizing: border-box; padding: 0; color: #fff; font: 13px var(--mmoFont); text-align: center; background: linear-gradient(#4b5258, #3a4045); border: 1px solid #23282c; border-radius: 3px; outline: 0; }
.mmBtns { display: flex; gap: 8px; } #panel[data-w=mart] .mmBtns button:not(.x) { flex: 1; height: 24px; }
.mmList { position: absolute; left: 296px; right: 9px; top: 28px; bottom: 4px; box-sizing: border-box; padding: 7px 0 7px 14px; overflow-y: auto; display: flex; flex-direction: column; gap: 7px; background: #32373c; border: 1px solid #1f2327; border-radius: 3px; }
.mmList::-webkit-scrollbar { width: 5px; } .mmList::-webkit-scrollbar-thumb { background: #e6e9ec; border-radius: 2px; }
html body #panel[data-w=mart] .mmIt:not(.x) { flex: none; display: flex; align-items: center; justify-content: space-between; width: 157px; height: 30px; padding: 0 7px 0 4px; text-align: left; } .mmIt span { line-height: 17px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .mmIt img { flex: none; width: 32px; height: 32px; margin: -2px 0; image-rendering: pixelated; }
.mmAsk { position: absolute; inset: -26px 0 0 0; z-index: 3; display: grid; place-items: center; background: #0007; border-radius: 3px; }
.mmAsk > div { width: max-content; min-width: 243px; max-width: 340px; box-sizing: border-box; padding: 16px 18px 12px; background: #363c41; border: 1px solid #1f2327; border-radius: 4px; box-shadow: 0 4px 14px #0009; }
.mmAsk p { margin: 0 0 12px; text-align: center; line-height: 18px; } #panel[data-w=mart] .mmAsk button:not(.x) { display: block; width: 100%; height: 26px; margin-top: 8px; } html body #panel[data-w=mart] .mmAsk button[data-a=myes]:not(.x) { border-color: #6fa8cf; background: linear-gradient(#4f6b7d, #3a4f5d); }
/* carte propre à un personnage (skins/cartes sur le serveur) : petite image en pixels, agrandie x2 sans flou */
img.pose.carte { image-rendering: pixelated; }
.pmPic img.pose.carte, #panel[data-w=team] .pmPic img.pose.carte { height: 138px; }
/* planche de lancer propre au personnage (skins/cartes/<nom>_lancer.png) : buste seul, pixels nets */
.bTrainer.full.carte { image-rendering: pixelated; left: 12%; height: 50%; }
.bTrainer.carte .bBall.held { width: 9%; }

/* statut comme Pokémon Argent (SOM, EMP, BRU, GEL, PAR) et paliers de stats comme PokeMMO (« -1 Déf »), sous la barre de PV */
.bSt { position: absolute; top: 0; right: 3%; height: 1.45em; display: flex; align-items: center; gap: .3em; pointer-events: none; } /* sur la ligne du nom, à droite : la bande de la barre de PV reste dégagée */
.bName .stIc { width: 1.15em; height: 1.15em; vertical-align: -.2em; margin-right: .3em; filter: drop-shadow(1px 1px 0 #0006); } /* statut devant le nom, comme PokeMMO */
.bSt b.st, .bSt i { font: 700 .82em/1.3 "Segoe UI", sans-serif; padding: 0 .45em; border-radius: .3em; font-style: normal; }
.bSt b.st { color: #fff; letter-spacing: .06em; border: 1px solid #0008; box-shadow: inset 0 1px 0 #fff5, inset 0 -1px 0 #0003; text-shadow: 1px 1px 0 #0008; }
.bSt .st.slp { background: #8c8ca0; } .bSt .st.psn { background: #a048b0; } .bSt .st.tox { background: #7a2890; }
.bSt .st.brn { background: #e86830; } .bSt .st.frz { background: #50b8f0; } .bSt .st.par { background: #d0b020; }
.bSt i { background: #f4e6d0; color: #b02a20; text-shadow: none; border: 1px solid #0004; } .bSt i.up { color: #1e7a30; }
/* capacité à apprendre en combat (façon PokeMMO) : 4 capacités + la nouvelle sur 3 colonnes, la question et Annuler à droite */
#bscene .bActs.mv.lrn { width: 48%; grid-template-columns: 1fr 1fr 1fr; }
.bActs.mv.lrn .mCard[data-lrn="4"] { grid-column: 3; } /* nouvelle capacité tout à droite, comme PokeMMO (2026-11-14) */
#bscene .bActs.mv.lrn .mE { grid-column: 1 / -1; justify-self: start; font-size: calc(var(--bw, 1vw) * .55); color: #cfd6dc; padding: 0; white-space: nowrap; overflow: hidden; }
.lrnAsk { display: flex; align-items: flex-start; gap: 8px; color: #fff; font-size: calc(var(--bw, 1vw) * .7); padding: 2px 8px; max-width: 22%; text-shadow: 0 1px #000; }
#bscene .bBar:has(.bActs.lrn) .lrnAsk .bBack { position: static; flex: none; width: 7em; min-width: 60px; align-self: flex-start; margin: 0; }
/* fiche d'une capacité (survol, ZQSD/flèches) et confirmation du remplacement, façon PokeMMO */
#bscene .lrnTip { position: absolute; z-index: 30; width: 26%; min-width: 220px; background: #fff; color: #222; border: 1px solid #9aa3aa; border-radius: 3px; padding: 6px 8px; font-size: calc(var(--bw, 1vw) * .62); line-height: 1.45; pointer-events: none; box-shadow: 0 2px 6px #0006; }
#bscene .lrnTip .ltHead { display: flex; justify-content: space-between; align-items: flex-start; gap: 6px; }
#bscene .lrnTip .ltHead span { display: flex; flex-direction: column; gap: 3px; }
#bscene .lrnTip .ltHead i { font-style: normal; color: #fff; text-shadow: 0 1px #0008; padding: 1px 10px; border-radius: 3px; text-align: center; }
#bscene .lrnTip p { margin: 6px 0 8px; }
#bscene .lrnTip .ltFl { margin-top: 8px; }
#bscene .lrnModal { position: absolute; z-index: 31; left: 50%; bottom: 135%; transform: translateX(-50%); width: 26%; min-width: 240px; padding: 10px 14px; background: #2b3138; border: 1px solid #5c6670; border-radius: 3px; box-shadow: 0 2px 10px #000a; color: #fff; text-align: center; font-size: calc(var(--bw, 1vw) * .7); display: flex; flex-direction: column; gap: 6px; }
#bscene .lrnModal button { width: 100%; padding: 4px; background: linear-gradient(#4a535c, #323940); border: 1px solid #12161a; color: #fff; border-radius: 2px; font-size: inherit; }
#bscene .lrnModal button:hover { box-shadow: 0 0 0 2px #e8c84a inset; }
/* même fenêtre d'apprentissage après une évolution : cartes à gauche de la phrase, comme en combat */
#evoWin .evoBtns:has(.lrn) { left: .6%; right: auto; top: 5px; bottom: 5px; width: 66%; flex-direction: row; align-items: stretch; gap: 1%; }
#evoWin .evoBtns .bActs.mv.lrn { width: 70%; height: 100%; }
#evoWin .evoBtns .bActs .mCard { min-width: 0; background: linear-gradient(#3e464e, #2a3037); border: 1px solid #7c858c; border-radius: 2px; }
#evoWin .evoBtns .lrnAsk { max-width: 30%; }
#evoWin .evoBtns .lrnAsk .bBack { min-width: 60px; width: auto; padding: 1px 8px; }
#evoWin .bBar:has(.lrn) .bText { margin-left: 67%; }
#evoWin .evoBtns button.bSel { box-shadow: 0 0 0 2px #e8c84a inset; }

/* ===== Réglages façon PokeMMO ===== */
#setWin { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 60; width: 640px; max-width: calc(100vw - 16px); height: 520px; max-height: calc(100vh - 16px); display: flex; flex-direction: column;
  background: #3a3f45; border: 1px solid #1d2125; border-radius: 4px; box-shadow: 0 0 0 1px #5d666f inset, 0 12px 34px #000c; color: #e9edf0; font: 13px "Segoe UI", sans-serif; }
#setWin.hidden { display: none; }
#setWin .winHead { display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; background: linear-gradient(#4c565f, #3f474f); border-bottom: 1px solid #22272c; font-weight: 600; font-size: 14px; cursor: move; }
#setWin .winHead .x { background: none; border: 0; color: #e9edf0; font-size: 15px; cursor: pointer; }
#setWin .sBody { flex: 1; display: flex; min-height: 0; }
#setWin .sTabs { width: 112px; padding: 10px 0; display: flex; flex-direction: column; gap: 2px; }
#setWin .sTabs button { background: none; border: 0; border-left: 4px solid transparent; color: #9aa3ab; text-align: left; padding: 7px 12px; font: inherit; cursor: pointer; }
#setWin .sTabs button:hover { color: #e9edf0; }
#setWin .sTabs button.on { color: #fff; border-left-color: #fff; }
#setWin .sPane { flex: 1; overflow-y: auto; padding: 10px 12px 10px 4px; display: flex; flex-direction: column; gap: 6px; }
#setWin .sRow { display: flex; gap: 6px; min-height: 30px; }
#setWin .sRow.off { opacity: .45; pointer-events: none; }
#setWin .sLab { flex: 0 0 47%; display: flex; align-items: center; padding: 4px 9px; background: #3e5566; border: 1px solid #5a7487; border-radius: 2px; color: #fff; box-sizing: border-box; }
#setWin .sVal { flex: 1; display: flex; gap: 4px; align-items: stretch; }
#setWin .sVal > * { flex: 1; }
#setWin .sTog, #setWin .sKey, #setWin .sStep, #setWin .sNum, #setWin .sSel, #setWin .sWide, #setWin .sFoot button { background: #2f3438; border: 1px solid #555f68; border-radius: 2px; color: #e9edf0; font: inherit; }
#setWin .sTog { cursor: pointer; color: #7ed957; font-size: 16px; font-weight: 700; }
#setWin .sTog:hover, #setWin .sKey:hover, #setWin .sStep:hover, #setWin .sWide:hover, #setWin .sFoot button:hover { border-color: #8fa4b5; }
#setWin .sKey { cursor: pointer; }
#setWin .sKey.cap { border-color: #9cc3e6; box-shadow: 0 0 0 1px #9cc3e6 inset; }
#setWin .sStep { flex: 0 0 30px; cursor: pointer; }
#setWin .sNum { display: flex; align-items: center; justify-content: center; }
#setWin .sSel { padding: 0 8px; cursor: pointer; text-align: center; }
#setWin .sWide { flex: none; min-height: 30px; cursor: pointer; }
#setWin .sRow.two .sVal > * { flex: 0 0 calc(50% - 2px); }
#setWin .sRow.sHead { min-height: 0; } #setWin .sRow.sHead .sLab { visibility: hidden; padding: 0; min-height: 0; }
#setWin .sRow.sHead span { text-align: center; color: #dfe4e8; }
#setWin .sNa { visibility: hidden; }
#setWin .sNote { color: #9aa3ab; font-size: 12px; padding: 4px 2px; }
#setWin .sFoot { display: flex; gap: 6px; align-items: center; justify-content: flex-end; padding: 8px 12px; }
#setWin .sFoot button { padding: 5px 10px; cursor: pointer; }
#setWin .sMsg { flex: 1; color: #f0c860; font-size: 12px; }
#fpsBox { position: fixed; top: 25px; right: 10px; z-index: 5; color: #b8f070; font: 600 12px "Segoe UI", sans-serif; text-shadow: 1px 1px 2px #000; pointer-events: none; } /* sous l'horloge, même style */
#fpsBox.hidden { display: none; }
.chTime { display: none; font-style: normal; color: #9aa3ab; }
body.chatTime .chTime { display: inline; }
body.noChatTypes #chatLog .chPre { display: none; }
body.noEscMoney .emMoney { visibility: hidden; }
#setWin .sVal { background: none; box-shadow: none; }
#setWin .sVal > button, #setWin .sVal > select { min-height: 30px; margin: 0; box-shadow: none; }
/* dresseur adverse en duel (carte du joueur) : hauteur du corps de Blue (dessin 106 : 148 px pour une scène de 776), pieds au même niveau, centré comme lui.
   Réglé par la hauteur : une carte plus grande ou plus large ne grossit plus (avant : 1,7 fois Blue) */
.bFoeTr.carte { width: auto; height: 19%; top: 39%; left: 69.2%; translate: -50% 0; }

/* Amis façon PokeMMO : menu centré, Oui / Non, pied de la Liste Noire */
#ctx.fCtx { min-width: 0; padding: 4px; background: #262b30f2; border-color: #4d565e; }
#ctx.fCtx button { justify-content: center; padding: 5px 16px; border: 1px solid transparent; border-radius: 3px; }
#ctx.fCtx button:hover:not(:disabled) { background: #3a434b; border-color: #8a96a0; }
#ynBox { position: fixed; inset: 0; z-index: 60; display: flex; align-items: center; justify-content: center; background: #0003; }
#ynBox > div { min-width: 320px; max-width: 460px; padding: 14px 18px; background: #2b3138; border: 1px solid #5c6670; border-radius: 4px; box-shadow: 0 4px 16px #000a; display: flex; flex-direction: column; gap: 6px; color: #fff; font: 14px "MmoName", "Segoe UI", sans-serif; text-align: center; }
#ynBox p { margin: 0 0 8px; }
#ynBox button { padding: 5px; background: linear-gradient(#4a535c, #323940); border: 1px solid #12161a; border-radius: 2px; color: #fff; font: inherit; cursor: pointer; }
#ynBox button:hover, #ynBox button:focus { outline: none; box-shadow: 0 0 0 2px #8fb4d4 inset; }
.bFoot { display: flex; align-items: center; gap: 6px; }
.bFoot label { white-space: nowrap; font-size: 13px; }

/* modes du chat façon PokeMMO : bouton en bas à gauche et son menu */
#chat .chatRow .chan.clic { cursor: pointer; } #chat .chatRow .chan.clic:hover { background: #ffffff30; }
#chatModes { position: absolute; z-index: 30; display: flex; flex-direction: column; gap: 2px; padding: 4px; background: #262b30f2; border: 1px solid #4d565e; border-radius: 4px; box-shadow: 0 4px 12px #0009; }
#chatModes button { padding: 5px 14px; background: none; border: 1px solid transparent; border-radius: 3px; color: #fff; font: 13px "MmoName", "Segoe UI", sans-serif; text-align: center; white-space: nowrap; cursor: pointer; }
#chatModes button:hover, #chatModes button.on { background: #3a434b; border-color: #8a96a0; }
#chatLog .hurler { color: #ffb066; } #chatLog .canal { color: #f2d36b; } #chatLog .lien { color: #f29bd0; }

/* Réglages > Vidéo : champ de la limite d'images, lissage de l'écran du jeu */
#setWin .sIn { min-width: 0; text-align: center; outline: none; } #setWin .sIn:focus { border-color: #8fb4d4; }
body.smooth #emu { image-rendering: auto; }

/* fiche d'un Pokémon de l'équipe épinglée au clic : actions à droite (PokeMMO) */
#ctx .ctxRow img, #ctx .ctxMons img { width: 24px; height: 24px; margin: -4px -2px; image-rendering: pixelated; }
#ctx .ctxNoMon { width: 20px; height: 16px; }
#ctx .ctxMons button { font-weight: 600; }
#ctx .ctxMons button.cur { color: #ffd75a; }
#ctx .ctxMons button[data-fm="none"] { margin-top: 2px; }
/* icône du menu équipe (2 images l'une sous l'autre) : la première seulement */
.monIc { display: inline-block; flex: none; width: 24px; height: 24px; margin: -6px -2px; background: 0 0 / 24px 48px no-repeat; image-rendering: pixelated; }

/* Pokédex façon PokeMMO (captures « Num. 002 ??? ») : fiche 764 px, onglets inclinés, cadre pointillé, image animée, famille en cases */
#panel[data-w=dexmon] { width: 764px; max-height: 90vh; }
#panel[data-w=dex] { width: 672px; }
#panel[data-w=dexmon] #panelBody { padding: 6px 8px 8px; display: flex; flex-direction: column; }
#panel[data-w=dexmon] .mTabs { margin: 0 4px -1px; gap: 0; z-index: 1; }
#panel[data-w=dexmon] .mTabs button { flex: 1; margin-right: -6px; padding: 5px 10px 4px !important; border: 1px solid #14191d !important; border-bottom: 0 !important; border-radius: 7px 0 0 0 !important; clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 100%, 0 100%); background: linear-gradient(#2a3137, #1f252a) !important; color: #fff; font-weight: 600; font-size: 13px; white-space: nowrap; }
#panel[data-w=dexmon] .mTabs button.on { background: linear-gradient(#3e474f, #353d44) !important; }
.dxBody { background: #353d44; border: 1px solid #14191d; border-radius: 4px; padding: 14px 10px; min-height: 380px; box-shadow: 0 0 0 1px #4a545d inset; }
.dxSum { gap: 70px; }
.dxLeft { width: 170px; flex: none; display: grid; gap: 8px; align-content: start; }
.dxPic { width: auto; height: 184px; position: relative; border: 2px dotted #9aa6b0; border-radius: 8px; padding: 6px 4px 8px; align-content: space-between; color: #fff; font-weight: 600; font-size: 12px; }
.dxPic img { width: 128px; height: 128px; }
.dxPic img.shadow { filter: brightness(0); opacity: .7; }
.dxPic .bShadow { display: none; }
.dxBtn { width: 100%; padding: 4px !important; background: linear-gradient(#58616a, #444c54) !important; border: 1px solid #1a2025 !important; border-radius: 2px !important; color: #fff; }
.dxBtn:disabled { color: #aab2b9; opacity: .6; }
#panel[data-w=dexmon] .dxRows { gap: 5px; max-width: 425px; }
#panel[data-w=dexmon] .dxRow { grid-template-columns: 104px 1fr; gap: 5px; }
#panel[data-w=dexmon] .dxRow b { background: linear-gradient(#4f6373, #3c4d5b); border: 1px solid #1b242b; border-radius: 2px; padding: 4px 2px; font-size: 13px; color: #fff; }
#panel[data-w=dexmon] .dxRow span { background: #2c3339; border: 1px solid #1d2328; border-radius: 2px; padding: 4px 6px; color: #fff; }
#panel[data-w=dexmon] .dxMatch .dxRow { grid-template-columns: 124px 150px; justify-content: center; }
#panel[data-w=dexmon] .dxMatch .dxRow:first-child b { background: linear-gradient(#4f6373, #3c4d5b); }
#panel[data-w=dexmon] .dxMatch .dxHead { background: linear-gradient(#4f6373, #3c4d5b); font-weight: 600; text-align: center; }
#panel[data-w=dexmon] .dxStats { grid-template-columns: 148px 148px 158px; justify-content: center; gap: 3px; margin: 0 auto; }
#panel[data-w=dexmon] .dxStats b, #panel[data-w=dexmon] .dxStats span { background: linear-gradient(#4f6373, #3c4d5b); border: 1px solid #1b242b; font-weight: 400; padding: 4px; }
#panel[data-w=dexmon] .dxStats i { height: 10px; border-radius: 5px; background: #2a3238; border: 1px solid #56626c; }
#panel[data-w=dexmon] .dxTable th { background: linear-gradient(#4f6373, #3c4d5b); color: #fff; text-transform: uppercase; }
#panel[data-w=dexmon] .dxTable td { background: #2c3339; border: 1px solid #1d2328; text-align: left; padding: 3px 6px; color: #fff; }
#panel[data-w=dexmon] .dxScroll { max-height: 360px; }
.dxFamily { min-height: 350px; padding: 0; }
.dxNode, .dxKid { gap: 10px; }
.dxEvo { width: 46px !important; height: 46px; padding: 0 !important; display: grid; place-items: center; background: #2b3238 !important; border: 2px solid #1d2328 !important; border-radius: 3px !important; box-shadow: 0 0 0 1px #4b555e inset; }
.dxEvo.on { border-color: #5a6771 !important; }
.dxIc { display: block; width: 32px; height: 32px; background: 0 0 / 32px 64px no-repeat; image-rendering: pixelated; }
.dxIc.shadow { filter: brightness(0); opacity: .75; }
.dxAr { font-style: normal; color: #fff; font-size: 16px; }
.dxHow { width: 46px; height: 46px; display: grid; place-items: center; align-content: center; background: #2b3238; border: 2px solid #1d2328; border-radius: 3px; box-shadow: 0 0 0 1px #4b555e inset; color: #c9d0d6; font-size: 11px; line-height: 1; text-align: center; }
.dxHow img { width: 24px; height: 24px; image-rendering: pixelated; }
.dxHow b { font-size: 24px; color: #fff; font-weight: 400; }
/* grille du Pokédex */
.dexGrid { grid-template-columns: repeat(12, 46px); gap: 5px; justify-content: center; background: #2c3339; border: 1px solid #14191d; padding: 5px; }
.dexCell { width: 46px; height: 46px; padding: 2px 0 0 !important; background: #3a4249; border: 2px solid #20262b; border-radius: 4px; color: #fff; font-size: 11px; line-height: 1; box-sizing: border-box; }
.dexCell .dxIc { margin: -3px auto -2px; filter: brightness(0); opacity: .75; }
.dexCell.seen .dxIc, .dexCell.own .dxIc { filter: none; opacity: 1; }
.dexCell.own { border-color: #6cc24a; }
.dexStats div { border: 0; background: none; padding: 2px 0; display: grid; gap: 2px; }
.dexStats i { height: 5px; background: #20262b; border-radius: 3px; overflow: hidden; } .dexStats em { display: block; height: 100%; background: #e9eef2; }
.dxPic img { width: 144px; height: 144px; margin-top: -10px; }
.dxTy { position: absolute; left: 4px; bottom: 4px; display: flex; gap: 2px; } .dxTy .dxType { font-size: 10px; padding: 0 6px; }
.dxBody { overflow-y: auto; }
#dexTip { position: fixed; z-index: 2000; transform: translate(-50%, -100%); background: #fff; color: #222; border: 1px solid #222; border-radius: 3px; padding: 3px 7px; font: 600 12px "Segoe UI", sans-serif; pointer-events: none; white-space: nowrap; }
#dexTip::after { content: ''; position: absolute; left: 50%; bottom: -6px; margin-left: -5px; border: 5px solid transparent; border-top-color: #fff; border-bottom: 0; filter: drop-shadow(0 1px 0 #222); }
#dexTip.hidden { display: none; }
.dexCell:hover { border-color: #4aa3e8 !important; }

/* déconnexion AFK, mesurée sur PokeMMO : écran assombri, fenêtre 401 x 95, bouton Ok sur toute la largeur au bord bleu */
#afkBox { position: fixed; inset: 0; z-index: 90; display: flex; align-items: center; justify-content: center; background: #0000005c; }
#afkBox > div { width: 401px; box-sizing: border-box; padding: 18px 17px; background: linear-gradient(#50565c, #373e43); border: 1px solid #1f2326; border-radius: 3px; box-shadow: inset 0 0 0 1px #5c646a, 0 2px 10px #0008; color: #fff; font: 400 13px "Segoe UI", "Noto Sans", sans-serif; text-align: center; }
#afkBox p { margin: 0 0 12px; line-height: 18px; white-space: nowrap; }
#afkBox button { display: block; width: 100%; height: 27px; padding: 0; background: linear-gradient(#525a5f, #42596c); border: 1px solid #4f8cc4; border-radius: 2px; color: #fff; font: inherit; cursor: pointer; }
#afkBox button:hover, #afkBox button:focus { outline: none; background: linear-gradient(#5a6369, #48627a); }
/* nouveau personnage façon PokeMMO : face, dos et profil l'un sous l'autre, flèches de part et d'autre */
#newCharBox .crSprites { grid-template-columns: 1fr; gap: 34px; padding: 14px 0; }
#newCharBox .crPreview { padding: 0 30px; }
/* choix de la tenue comme la fenêtre de PokeMMO (871 x 689) : 12 lignes, étiquette bleue, liste sombre, pastille de couleur arc-en-ciel */
#newCharBox { width: 870px; max-height: 98vh; overflow-y: auto; z-index: 11; } /* au-dessus des Annonces sur une petite fenêtre */
#newCharBox .crBody { grid-template-columns: 412px 1fr; gap: 16px; }
#newCharBox .crLeft { position: relative; }
#newCharBox .crOptions { gap: 6px; }
#newCharBox .crOpt { grid-template-columns: 148px 1fr 18px; gap: 8px; } /* 2026-11-13 (sa demande) : mêmes lignes que Personnalisation du Personnage (.cuRow) */
#newCharBox .crLabel, #newCharBox .crRow .crLabel { height: 40px; box-sizing: border-box; display: grid; place-items: center; padding: 0 6px; background: linear-gradient(#55707f, #38505e); border: 1px solid #1c2a31; box-shadow: 0 1px 0 #7d98a666 inset; color: #fff; font: 13px "MmoName", "Segoe UI", sans-serif; line-height: 1.15; }
#newCharBox .crRow { grid-template-columns: 148px 1fr; gap: 8px; }
#newCharBox .crOpt select, #newCharBox .crRow select, #newCharBox .crRow input { height: 40px; box-sizing: border-box; padding: 0 22px; border: 1px solid #1f2326; border-radius: 3px; color: #c4c7c9; font: 13px "MmoName", "Segoe UI", sans-serif; text-align: center; text-align-last: center; cursor: pointer; -webkit-appearance: none; appearance: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='12'%3E%3Cpath fill='%23fff' d='M4 0l4 5H0zM4 12L0 7h8z'/%3E%3C/svg%3E") no-repeat right 8px center, linear-gradient(#62676a, #4c5053); }
#newCharBox .crRow input { cursor: text; background: #2f3337; }
#newCharBox .crOpt select:hover, #newCharBox .crOpt select:focus, #newCharBox .crRow select:hover, #newCharBox .crRow select:focus { color: #fff; outline: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='12'%3E%3Cpath fill='%23fff' d='M4 0l4 5H0zM4 12L0 7h8z'/%3E%3C/svg%3E") no-repeat right 8px center, linear-gradient(#45494c, #35393b); }
#newCharBox .crRow input:focus { color: #fff; outline: 0; }
#newCharBox select option { background: #3a3f42; color: #fff; }
#newCharBox button.crDot { width: 18px; height: 18px; padding: 0; border: 0; border-radius: 50%; justify-self: center; box-shadow: none; border-image: none; background: radial-gradient(circle at 50% 50%, #fff 0 18%, transparent 55%), conic-gradient(#ff4d4d, #ffc640, #5cdc50, #40d0ff, #5a60ff, #ff50e0, #ff4d4d); }
#newCharBox button.crDot:disabled, #newCharBox #crOptions select:disabled { opacity: .45; cursor: default; } /* Jambes et Chaussures d'un costume (2026-11-12) */
/* palette de la création = « Définir la Couleur » de Personnaliser (#cuPal), sur toute la fenêtre sous le titre (2026-11-13) */
#newCharBox { position: relative; }
.crPal { position: absolute; left: 0; right: 0; bottom: 0; top: 40px; display: flex; flex-direction: column; align-items: center; gap: 44px; padding: 14px 10px 80px; background: #3a3f42; z-index: 3; }
#crPalCv, #crCv { image-rendering: pixelated; }
.crPal .cuNav { width: 420px; padding: 0; margin-top: 8px; }
.crPal.hidden { display: none; }
.crPalT { color: #fff; font-size: 13px; }
.crSw { display: grid; grid-template-columns: repeat(16, 22px); gap: 2px; }
.crSw div { height: 26px; cursor: pointer; border: 1px solid #1a2229; border-radius: 1px; }
.crSw div:hover { outline: 1px solid #fff8; }
.crSw div.on { outline: 2px solid #fff; z-index: 1; }
#crPalOk { width: 146px; height: 46px; }
/* carte de la région, comme PokeMMO : dessin de Rouge Feu agrandi 3 fois, nom du lieu en haut à gauche */
#panel[data-w=map] { width: auto; max-height: none; }
#panel[data-w=map] #panelBody { padding: 0; overflow: hidden; }
.rmapBox { position: relative; line-height: 0; }
#rmapCv { display: block; width: 576px; height: 432px; image-rendering: pixelated; }
#rmapName { position: absolute; left: 20px; top: 26px; line-height: 1.25; color: #fff; font: bold 15px "Segoe UI", sans-serif; text-shadow: 0 1px 0 #000, 1px 0 0 #000, 0 -1px 0 #000, -1px 0 0 #000, 0 2px 3px #0008; pointer-events: none; }
#rmapName small { display: block; font-size: 12px; font-weight: 600; opacity: .9; }
/* objet du Sac glissé vers la barre de raccourcis */
#hotGhost { position: fixed; z-index: 9999; pointer-events: none; transform: translate(-50%, -50%) scale(1.5); image-rendering: pixelated; filter: drop-shadow(0 2px 2px #000a); }
body.hotDragging, body.hotDragging * { cursor: grabbing !important; }
body.hotDragging .hotCell { border-color: #8d93a6; }
.hotCell.dropOn { border: 1px solid #ffd54a !important; background: #2a3150 !important; }

/* ===== Échange façon PokeMMO (0.5.309) : demande, attente, fenêtre Échange, confirmation, messages ===== */
#trNote { position: fixed; z-index: 40; transform: translateX(-50%); padding: 6px 10px; color: #e8eaec; font: 13px var(--mmoFont, "Segoe UI"), sans-serif; white-space: nowrap; background: #3a3f44f2; border: 1px solid #5d6268; border-radius: 4px; box-shadow: 0 2px 6px #0007; pointer-events: none; }
.trBox { position: fixed; z-index: 40; display: grid; gap: 7px; padding: 10px 12px 12px; color: #eef0f2; font: 13px var(--mmoFont, "Segoe UI"), sans-serif; text-align: center; background: #34393ef2; border: 1px solid #5b6066; border-radius: 6px; box-shadow: 0 6px 18px #000a; user-select: none; }
.trBox p { margin: 0; line-height: 1.35; }
#trAsk { left: 50%; top: 34%; width: 340px; transform: translateX(-50%); }
#trWait { width: 250px; transform: translateX(-50%); padding: 8px 12px 10px; }
.trBar, .tcBar { height: 6px; overflow: hidden; background: #1c2024; border: 1px solid #4e5359; border-radius: 2px; }
.trBar i, .tcBar i { display: block; height: 100%; width: 0; background: repeating-linear-gradient(90deg, #3d86e0 0 6px, #2f6fc4 6px 8px); }
.trBox button { padding: 6px 8px; font: inherit; color: #eef0f2; background: linear-gradient(#4a4f55, #3d4247); border: 1px solid #5c6167; border-radius: 3px; cursor: pointer; }
.trBox button:hover { border-color: #4b8ad6; box-shadow: 0 0 0 1px #4b8ad6 inset; }
.pcw.trw { width: 560px; background: #2f3f49; box-shadow: 0 0 0 1px #61798a inset, 0 10px 28px #000b; }
.trw .pcwHead { height: 30px; background: linear-gradient(#34454f, #2a3841); color: #fff; text-shadow: 0 1px 1px #000a; font-size: 14px; }
.trw .pcwX { color: #0d1114 !important; border: 0; }
.trBody { padding: 0 6px 6px; }
.trNames { display: grid; grid-template-columns: 1fr 1fr; margin: 6px -6px 0; padding: 6px 0; background: #26343c; }
.trNames span { display: flex; align-items: center; justify-content: center; gap: 6px; position: relative; font-weight: 600; }
.trNames span:last-child .trShield { position: absolute; right: 14px; }
.trShield { width: 14px; height: 16px; }
.trCols { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 4px; }
.trCol { display: flex; flex-direction: column; align-items: stretch; gap: 8px; padding: 8px 8px 10px; background: #3b5361; border: 1px solid #587282; border-radius: 3px; }
.trSec { text-align: center; font-weight: 600; color: #f2f5f7; margin-top: 2px; }
.trw button { font: inherit; color: #eef1f3; background: linear-gradient(#53595e, #3f4448); border: 1px solid #2a2f33; border-radius: 3px; box-shadow: 0 1px #ffffff14 inset; cursor: pointer; }
.trw button:disabled { opacity: 1; color: #a2a8ad; background: linear-gradient(#5b6268, #4b5157); cursor: default; }
.trw button:not(:disabled):hover { border-color: #4b8ad6; }
.trMoney { display: grid; grid-template-columns: 24px 1fr 24px; gap: 4px; }
.trMoney button { height: 26px; padding: 0; }
.trField { height: 26px; line-height: 26px; padding: 0 8px; color: #b9c5cd; background: #435d6b; border: 1px solid #62808f; border-radius: 3px; }
.trGrid { display: grid; grid-template-columns: repeat(3, 68px); gap: 6px; justify-content: center; }
.trSlot { position: relative; height: 31px; padding: 0; overflow: hidden; }
.trw .trSlot:disabled { background: linear-gradient(#53595e, #3f4448); }
.trSlot img { position: absolute; left: 4px; top: 3px; width: 24px; height: 24px; image-rendering: pixelated; }
.trSlot b { position: absolute; right: 5px; bottom: 2px; font-size: 11px; color: #fff; text-shadow: 0 1px 1px #000; }
.trIc { display: inline-block; width: 32px; height: 32px; background-repeat: no-repeat; background-size: 32px 64px; image-rendering: pixelated; vertical-align: middle; }
.trSlot .trIc { position: absolute; left: 4px; top: -2px; }
.trStar { position: absolute; right: 4px; top: 1px; color: #ffd84a; font-size: 10px; text-decoration: none; }
.trWide { height: 28px; }
.trState { height: 28px; line-height: 28px; text-align: center; border-radius: 3px; }
.trState.off { color: #ff5a73; background: linear-gradient(#5b1d2b, #471521); border: 1px solid #2a0d13; }
.trState.on { color: #b3ffbb; background: linear-gradient(#24803f, #1b6531); border: 1px solid #0f3a1c; }
.trState.wait { color: #a7adb2; background: linear-gradient(#5b6268, #4b5157); border: 1px solid #2a2f33; }
.trPk { display: inline-flex; align-items: center; gap: 6px; }
.trPk img { width: 24px; height: 24px; image-rendering: pixelated; }
.trPk .trIc { width: 28px; height: 28px; background-size: 28px 56px; margin: -4px 0; }
.trQ { font-style: normal; color: #c9d1d6; }
.trConf { position: absolute; inset: 10px 8px 8px; z-index: 2; display: grid; place-items: stretch; }
.trConf.hidden { display: none; }
.tcBox { display: flex; flex-direction: column; gap: 8px; padding: 10px 14px 12px; background: #2c3439; border: 1px solid #556069; border-radius: 4px; box-shadow: 0 8px 22px #000c; overflow: auto; }
.tcBox h4 { margin: 4px 0 6px; text-align: center; font-size: 14px; font-weight: 600; }
.tcCols { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; flex: 1; }
.tcCol { display: flex; flex-direction: column; align-items: center; gap: 5px; text-align: center; }
.tcCol > b { font-weight: 600; }
.tcL { display: flex; align-items: center; gap: 6px; }
.tcL img { width: 22px; height: 22px; image-rendering: pixelated; }
.tcCoin { width: 18px; height: 14px; background: linear-gradient(#ffe36a, #d9a516); border-radius: 50% / 40%; box-shadow: 0 3px 0 -1px #c18d0e, 0 -3px 0 -1px #ffe98a; }
.tcS { color: #e1e6ea; }
.tcCol button { padding: 5px 26px; margin: 2px 0 4px; }
.tcCard { display: flex; align-items: center; gap: 10px; align-self: stretch; text-align: left; line-height: 1.4; }
.tcPic { display: grid; place-items: center; flex: none; width: 46px; height: 46px; background: linear-gradient(#53595e, #3f4448); border: 1px solid #2a2f33; border-radius: 3px; }
.tcBar { align-self: stretch; background: none; border: 0; }
.tcBar i { border-radius: 1px; }
.tcBox > button { height: 30px; }
.tcBox > button[data-tc="no"] { border-color: #4b8ad6; }

/* échange : bulle du bouclier et cadre doré des chromatiques (0.5.312) */
.trShield { cursor: help; }
#trTip { position: fixed; z-index: 60; width: max-content; max-width: calc(100vw - 8px); white-space: nowrap; padding: 6px 12px 8px; color: #1d2124; font: 13px var(--mmoFont, "Segoe UI"), sans-serif; line-height: 1.45; background: #fff; border: 1px solid #2f6fd6; box-shadow: 0 3px 10px #0006; pointer-events: none; }
#trTip.hidden { display: none; }
#trTip .trSlot { display: block; position: relative; width: 30px; height: 26px; margin-top: 2px; background: linear-gradient(#f0b84a, #c98a1e); border-radius: 3px; }
#trTip .trIc { position: absolute; left: -1px; top: -4px; }
.trw .trSlot.trGold { border: 2px solid #e8a92b; box-shadow: 0 0 0 1px #8a5a0a inset, 0 0 4px #f5c24a88; background: linear-gradient(#6a5a3a, #4a3e26); }

/* Poké Ball qui roule (ballSpinUrl) : 12 images, un tour en 0,42 s */
.bSpin { position: absolute; aspect-ratio: 1; translate: -50% -50%; z-index: 5; image-rendering: pixelated; background: 0 0 / 1200% 100% no-repeat; animation: bSpin .42s steps(12) infinite; }
@keyframes bSpin { to { background-position: 109.0909% 0; } }
/* plan large (scène remontée de 9 %) : sous l'image du décor, le bas du décor rendu par la même caméra (bwbg f=1, 216 rangées) au lieu d'une bande unie marron sous la barre de texte, comme PokeMMO (0.5.331).
   L'image du décor est en cover sur une fenêtre plus large que 16/9 : largeur pleine, centrée ; son bas est à 50 % + 28,125 % de la largeur. */
.bWin.bw3d .bStage::before { content: ""; position: absolute; left: 0; right: 0; top: -2.3125%; height: 156.9375%; /* 0.5.335 : en % de la hauteur, fenêtre au format 1,86 (cqw retombait sur la largeur de l'écran : décor énorme, ciel seul) */ pointer-events: none; background-image: var(--bwExtImg); background-size: var(--bwExtSize); background-position: var(--bwExtPos); background-repeat: no-repeat; background-blend-mode: multiply; image-rendering: pixelated; } /* 0.5.336 : teinte de l'heure en multiply comme .bStage (sinon voile opaque blanc) ; 0.5.333 : couvre toute l'image (le fond de .bStage s'arrête à sa boîte) + son bas, sans trou */
.bWin.iHideFoe .bMon.front { visibility: hidden; } /* 0.5.334 : adversaire caché jusqu au début de sa sortie (foeDrop) */

/* 0.5.341 : Ball de capture dessinée comme celle de l'envoi (ballSpinUrl), en deux moitiés pour s'ouvrir ; image 9 = Ball droite, bouton de face */
.bCatch.bCatch2 { background: none; width: 3.2%; filter: drop-shadow(0 .2em .15em #0006); }
.bCatch2 i { position: absolute; inset: 0; background: 0 0 / 1200% 100% no-repeat; image-rendering: pixelated; }
.bCatch2 .lo { clip-path: inset(50% 0 0 0); } .bCatch2 .hi { clip-path: inset(0 0 50% 0); transform-origin: 8% 50%; transition: transform .08s; }
.bWin.iCatch .bStage { animation-play-state: paused; }
/* 2026-11-15 : calque de la Ball de capture, accroché au point 3D de la plateforme adverse (suit la caméra et grossit avec elle, voir catchStart) */
.bCatchRig { position: absolute; inset: 0; pointer-events: none; z-index: 5; }
/* capture : dès le clic sur la Ball, plus aucun menu (le jeu caché repasse par le sien une fraction de seconde : il clignotait pendant le vol et retenait la caméra derrière mon Pokémon) */
.bWin.iCatch .bActsWrap > * { display: none !important; }
.bCatch2.open .hi { display: none; } .bCatch2.open .lo { translate: 0 9%; } /* Ball ouverte comme PokeMMO : calotte levée vers l'arrière (disque sombre de l'intérieur, bord de la couleur de la Ball), moitié basse un peu descendue */
.bCatch2.open::before { content: ""; position: absolute; left: 1%; right: 1%; top: -36%; height: 92%; border-radius: 50%; background: radial-gradient(circle at 45% 40%, #4a4e4a, #343834 70%); box-shadow: inset 0 0 0 .14em color-mix(in srgb, var(--bt, #e40000) 78%, #000), 0 0 0 .07em #1c2420; }
.bCatch2.spin i { animation: bSpin2 .42s steps(12) infinite; } /* départ explicite à la 1re image : avec bSpin, le départ était l'image de repos (81,8 %) et chaque pas tombait entre deux images de la planche (Ball coupée en deux, capture du 2026-11-10) */
@keyframes bSpin2 { from { background-position: 0 0; } to { background-position: 109.0909% 0; } }
.bCatch.bCatch2.caught { filter: brightness(.36) saturate(.85) drop-shadow(0 .2em .15em #0006); transition: filter .04s; }

/* chat aux couleurs de PokeMMO, mesurées sur ses captures (2026-11-10) : fond nuit #181b25, saisie #11131d, boutons #2b2d35, onglet actif #2f313b ;
   étiquette et pseudo blancs, Échange jaune #e4c168, liens bleu clair #a7ccfb, Combat rouge saumon #ec837a avec noms et capacités en orange #fb8800 */
#chatLog .chPre, #chatLog b, #chatLog .mp b { color: #fbfbfb; }
#chatLog .echange { color: #e4c168; } #chatLog .chatCite { color: #a7ccfb; }
#chatLog .combat { color: #ec837a; } #chatLog .combat .cbHi { color: #fb8800; font-style: normal; }
#chat .chatTabs > button { color: #a0a8ba !important; } #chat .chatTabs > button.on { color: #efede6 !important; background: #2f313b; }
#chat .chatRow .chan, #chat .chatRow button { background: #2b2d35; } #chat .chatRow .chan:hover, #chat .chatRow button:hover { background: #3a3d47; }
#chat .chatRow input { background: #11131d; border-color: #ffffff10; }
#chatLog::-webkit-scrollbar-track { background: #38393e; } #chatLog::-webkit-scrollbar-thumb { background: #99999a; }

/* entrée en combat mesurée sur la vidéo PokeMMO « fix fluide » (0.5.350) : flash blanc 0,27 s + 0,27 s tenu + 0,17 s, carte assombrie en 0,5 s à partir de 1,07 s,
   fenêtre qui grandit depuis mon personnage en 0,27 s (transform-origin posé par bOpenFrom). Tous les combats : sauvage, dresseur, champion, duel */
#bscene.flash::after { z-index: 3; animation: bFlash4 .71s linear forwards; }
@keyframes bFlash4 { 0% { opacity: 0; } 38% { opacity: .86; } 76% { opacity: .86; } 100% { opacity: 0; } }
#bscene:not(.hidden):not(.gbaMode)::before { opacity: .8; }
#bscene.pre:not(.hidden):not(.gbaMode)::before { opacity: 0; animation: bDim4 .5s ease-in 1.07s forwards; }
@keyframes bDim4 { to { opacity: .8; } }
#bscene.opening .bWin { animation: bOpen4 .27s cubic-bezier(.5, 0, .9, .6) both; }
@keyframes bOpen4 { from { transform: scale(.03); } to { transform: none; } }

/* sélection du personnage (0.5.354) : fenêtre élargie pour que 3 personnages avec 6 Pokémon chacun tiennent (à 660 px, la 3e colonne d'icônes sortait de la carte,
   surtout avec une coiffure large). Les icônes ne rétrécissent jamais ; c'est le dresseur qui cède la place s'il le faut */
.charbox { width: min(930px, 96vw); }
.charlist { gap: 10px; }
.charcard { min-width: 0; overflow: hidden; }
.charcard .cc { gap: 14px; min-width: 0; }
.ccTeam { flex: 0 0 auto; }
.ccPose { flex: 0 1 auto; min-width: 0; display: flex; justify-content: center; }
/* dresseur moins zoomé, comme PokeMMO (environ 70 % de la hauteur de la carte au lieu de la remplir) */
.ccPose img.pose, .ccPose canvas[data-av] { height: 92px; width: auto; }
.charcard .cc { min-height: 100px; }
.charcard { min-height: 138px; }
/* ennemi : miroir exact de la mienne, texte du côté de la pointe */
.bAbil:not(.mine) { text-align: left; }
.bAbil:not(.mine) .bAbN { padding: 0 calc(var(--bw, 1vw) * 2.4) calc(var(--bw, 1vw) * .35); }
.bAbil:not(.mine) .bAbT { padding: 0 calc(var(--bw, 1vw) * 2) 0 calc(var(--bw, 1vw) * 3.4); }

/* saison du monde (pastille colorée, comme le guide de PikaMMO) */
.seasonB { display: inline-flex; align-items: center; gap: 3px; padding: 0 5px 0 3px; border-radius: 8px; font-weight: bold; line-height: 15px; color: #fff; text-shadow: 1px 1px 0 rgba(0,0,0,.45); }
#hudTime .seasonB svg, .emSub .seasonB svg { width: 11px; height: 11px; filter: none; }
.seasonB.s0 { background: #d8679e; } .seasonB.s1 { background: #e38a1c; } .seasonB.s2 { background: #a4602c; } .seasonB.s3 { background: #4f93c9; }

/* 0.5.399 : fenêtre du combat cliquée = devant le chat (PokeMMO) ; clic sur le chat = chat devant */
body.battleFront #chat { z-index: 4; }
/* 0.5.400 barre d'équipe façon PokeMMO (sa capture) : case grise à liseré clair, icône de menu de Noire, barre de vie verte rayée sur toute la largeur, carré vert si objet tenu */
/* 0.5.402 chat façon PokeMMO (vidéo « chatbox ») : fond bleu nuit #1e1d26 presque opaque (mesuré #202028 sur la carte claire), bord noir fin ; bords droit / haut et coin pour agrandir, curseurs de PokeMMO */
#chat { background: rgba(30, 29, 38, var(--chatA)); border: 1px solid #0b0c10; border-radius: 4px; }
#chat.idle { background: rgba(30, 29, 38, calc(var(--chatA) * .85)); }
#chat .chatTabs > button.on { background: #37353f; }
#chat .chatRow input { background: #16171c; }
#chat.sizing, #chat.sizing * { transition: none !important; }
.chatEdge { position: absolute; z-index: 2; touch-action: none; }
#chatEdgeR { top: 14px; right: -3px; bottom: 0; width: 7px; cursor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20shape-rendering%3D%27crispEdges%27%3E%3Cpath%20d%3D%27M2%2012%20L7%207%20L7%2010%20L17%2010%20L17%207%20L22%2012%20L17%2017%20L17%2014%20L7%2014%20L7%2017%20Z%27%20fill%3D%27%23fff%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.5%27%20stroke-linejoin%3D%27miter%27%2F%3E%3C%2Fsvg%3E") 12 12, ew-resize; }
#chatEdgeT { top: -3px; left: 0; right: 14px; height: 7px; cursor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20shape-rendering%3D%27crispEdges%27%3E%3Cpath%20d%3D%27M12%202%20L17%207%20L14%207%20L14%2017%20L17%2017%20L12%2022%20L7%2017%20L10%2017%20L10%207%20L7%207%20Z%27%20fill%3D%27%23fff%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.5%27%20stroke-linejoin%3D%27miter%27%2F%3E%3C%2Fsvg%3E") 12 12, ns-resize; }
#chat #chatGrip { width: 14px; height: 14px; top: -3px; right: -3px; cursor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20shape-rendering%3D%27crispEdges%27%3E%3Cpath%20d%3D%27M20%204%20L20%2011%20L17.5%208.5%20L8.5%2017.5%20L11%2020%20L4%2020%20L4%2013%20L6.5%2015.5%20L15.5%206.5%20L13%204%20Z%27%20fill%3D%27%23fff%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.5%27%20stroke-linejoin%3D%27miter%27%2F%3E%3C%2Fsvg%3E") 12 12, nesw-resize; }
#chat.locked .chatEdge { display: none; }
body[data-chat-sz="ew"], body[data-chat-sz="ew"] * { cursor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20shape-rendering%3D%27crispEdges%27%3E%3Cpath%20d%3D%27M2%2012%20L7%207%20L7%2010%20L17%2010%20L17%207%20L22%2012%20L17%2017%20L17%2014%20L7%2014%20L7%2017%20Z%27%20fill%3D%27%23fff%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.5%27%20stroke-linejoin%3D%27miter%27%2F%3E%3C%2Fsvg%3E") 12 12, ew-resize !important; }
body[data-chat-sz="ns"], body[data-chat-sz="ns"] * { cursor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20shape-rendering%3D%27crispEdges%27%3E%3Cpath%20d%3D%27M12%202%20L17%207%20L14%207%20L14%2017%20L17%2017%20L12%2022%20L7%2017%20L10%2017%20L10%207%20L7%207%20Z%27%20fill%3D%27%23fff%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.5%27%20stroke-linejoin%3D%27miter%27%2F%3E%3C%2Fsvg%3E") 12 12, ns-resize !important; }
body[data-chat-sz="nesw"], body[data-chat-sz="nesw"] * { cursor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20shape-rendering%3D%27crispEdges%27%3E%3Cpath%20d%3D%27M20%204%20L20%2011%20L17.5%208.5%20L8.5%2017.5%20L11%2020%20L4%2020%20L4%2013%20L6.5%2015.5%20L15.5%206.5%20L13%204%20Z%27%20fill%3D%27%23fff%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.5%27%20stroke-linejoin%3D%27miter%27%2F%3E%3C%2Fsvg%3E") 12 12, nesw-resize !important; }
/* 0.5.403 : Pokémon du combat caché tant que sa planche animée n'est pas arrivée (jamais d'image fixe mal posée) */
.bMon.plWait { visibility: hidden !important; }
/* 0.5.404 : fiche de l'équipe (et choix du suiveur) avec l'icône de Noire de la barre, dans une case arrondie comme PokeMMO (son exemple Roucool) */
#emPop img.mIc { width: 32px; height: 32px; margin: -4px 0; object-fit: cover; object-position: 50% 0; }
/* 0.5.405 : en combat aussi, icônes de Noire (planche 32 x 64 : image du haut), chromatiques comprises */
.bDots img, .pCard img { object-fit: cover; object-position: 50% 0; }
/* 0.5.406 : fiche et menu de l'équipe identiques à PokeMMO (ses captures du 2026-11-11 : couleurs, places et tailles relevées au pixel).
   Noto Sans comme PokeMMO : Medium du jeu, Bold lu dans PokeMMO installé (sinon gras calculé). Étiquettes de type de son atlas (body.mmo), sinon en CSS */
@font-face { font-family: "PmmoB"; src: url(/mmo/res/fonts/NotoSans-Bold.ttf); font-weight: 700; }
#pmonTip { position: fixed; z-index: 55; width: 226px; padding: 10px; color: #f1efe8; font: 500 12px "MmoName", "Segoe UI", sans-serif; background: rgba(17, 20, 31, .955); border: 1px solid #32333b; border-radius: 8px; box-shadow: 0 2px 3px #0006; pointer-events: none; user-select: none; }
#pmonTip b, #pmonTip em, #pmonTip button, #pmonTip .ptNat span, #pmonTip .ptNatFx { font-family: "PmmoB", "MmoName", "Segoe UI", sans-serif; font-weight: 700; font-style: normal; }
#pmonTip hr { flex: none; height: 1px; margin: 0; border: 0; background: #4a4a51; }
#pmonTip .ptI { display: block; flex: none; color: #c2c8d6; }
.ptHead { display: flex; align-items: flex-start; gap: 9px; height: 36px; }
.ptMon { flex: none; display: grid; place-items: center; width: 36px; height: 36px; background: #23252e; border-radius: 5px; }
.ptMon img { width: 32px; height: 32px; object-fit: cover; object-position: 50% 0; image-rendering: pixelated; }
.ptHead div { min-width: 0; padding-top: 3px; }
.ptHead b { display: block; font-size: 13px; line-height: 16px; color: #f1efe8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ptHead small { display: block; font-size: 11px; line-height: 13px; color: #a2aabc; }
.ptBar { display: flex; align-items: center; height: 20px; color: #a2aabc; font-size: 9px; }
.ptBar span { flex: none; width: 32px; }
.ptTrack { flex: none; width: 129px; height: 6px; border-radius: 3px; background: #34363d; overflow: hidden; }
.ptTrack i { display: block; height: 100%; border-radius: 3px; }
#pmonTip .ptBar em { flex: 1; padding-right: 1px; font: 500 11px "MmoName", "Segoe UI", sans-serif; text-align: right; color: #f1efe8; white-space: nowrap; }
.ptHp { margin-top: 5px; } .ptHp span { padding-top: 1px; } #pmonTip .ptXp em { position: relative; top: -1px; }
.ptXp { height: 21px; margin-top: 1px; }
.ptXp .ptTrack { height: 3px; border-radius: 2px; background: linear-gradient(#393b42 0 1px, #6c6e74 1px 2px, #393b42 2px); }
.ptXp .ptTrack i { background: #78a7fd; border-radius: 2px; }
#pmonTip .ptXp + hr { margin-top: 5px; }
.ptCols { display: flex; justify-content: space-between; height: 14px; margin: 7px 0 -3px; padding-right: 1px; line-height: 14px; color: #a2aabc; font-size: 9px; letter-spacing: .25px; }
.ptMove { display: flex; align-items: center; height: 14px; margin-top: 5px; }
.ptMove b { min-width: 0; margin-left: 6px; font-size: 12px; color: #dbe0ec; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ptMove em { margin-left: auto; padding: 0 1px 0 6px; font-size: 12px; color: #dbe0ec; white-space: nowrap; }
.ptMove s { text-decoration: none; color: #8b93a7; }
#pmonTip .ptMove + hr { margin-top: 10px; }
.ptTy { flex: none; display: block; width: 49px; height: 14px; border-radius: 3px; background: var(--c); box-shadow: inset 0 -2px #0002; color: #fff; font: 700 9px/14px "PmmoB", "MmoName", sans-serif; text-align: center; text-decoration: none; text-shadow: 1px 0 var(--o), -1px 0 var(--o), 0 1px var(--o), 0 -1px var(--o); }
body.mmo .ptTy { background: var(--a, none) 0 var(--y, 0) / 49px 252px no-repeat, var(--c); box-shadow: none; color: transparent; text-shadow: none; image-rendering: pixelated; }
.ptNat { display: flex; align-items: center; height: 18px; margin-top: 7px; font-size: 12px; }
#pmonTip .ptNat .ptI { margin-right: 8px; color: #a2aabc; }
.ptNat span { margin-right: 6px; color: #a2aabc; }
.ptNat b { font-size: 12px; color: #f1efe8; }
.ptNatFx { height: 18px; margin-top: 2px; padding-right: 2px; font-size: 12.5px; line-height: 18px; text-align: right; }
.ptNatFx i { font-style: normal; } .ptNatFx .up { color: #7ed28a; } .ptNatFx .down { color: #ee847b; }
#pmonTip .ptNat + hr { margin-top: 8px; } #pmonTip .ptNatFx + hr { margin-top: 7px; }
.ptItem { display: flex; align-items: center; gap: 9px; height: 32px; margin-top: 8px; }
.ptItIc { flex: none; display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #36393f; border-radius: 6px; background: #252830; }
#pmonTip .ptItIc .ptI { color: #5f6168; }
.ptItIc img { width: 24px; height: 24px; image-rendering: pixelated; }
.ptItem div { min-width: 0; }
.ptItem b { position: relative; top: 1px; display: block; padding-left: 1px; font-size: 12px; line-height: 16px; color: #8b93a7; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ptItem.has b { color: #f1efe8; }
.ptItem small { display: block; font-size: 11px; line-height: 16px; color: #a2aabc; }
.ptHint { display: flex; align-items: center; height: 15px; margin-top: 8px; font-size: 10.5px; color: #8b93a7; white-space: nowrap; }
.ptHint u { height: 15px; padding: 0 3px; border: 1px solid #4b4b51; border-radius: 3px; color: #c0c6d4; line-height: 12px; text-decoration: none; }
.ptHint span { margin: 0 8px 0 4px; }
/* fiche épinglée (clic gauche) : fiche à gauche, menu à droite */
#pmonTip.pin { display: flex; width: auto; padding: 0; pointer-events: auto; }
#pmonTip.pin .ptL { flex: none; width: 225px; padding: 10px; border-right: 1px solid #4a4a51; }
.ptR { position: relative; flex: none; display: flex; flex-direction: column; width: 242px; padding: 3px 10px 5px; }
#pmonTip .ptR > .ptIt:first-child { margin-bottom: 1px; } #pmonTip .ptR > .ptIt + hr { margin-top: 6px; }
#pmonTip .ptR hr { margin: 5px 0; }
#pmonTip .ptR button { display: flex; align-items: center; min-width: 0; height: 30px; margin: 0; padding: 0 3px; border: 0; border-radius: 6px; background: none; color: #f3f1ea; font-size: 12px; text-align: left; filter: none; cursor: pointer; }
#pmonTip .ptR button:hover:not(:disabled), #pmonTip .ptR .ptIt.on { background: #ffffff0d; }
#pmonTip .ptR button:disabled { opacity: .4; cursor: default; }
#pmonTip .ptIt .ptI { margin-right: 10px; }
.ptIt span { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#pmonTip .ptIt small { font: 500 10px "MmoName", "Segoe UI", sans-serif; color: #8c94a8; }
.ptRow2 { display: grid; grid-template-columns: 138px 1fr; gap: 3px; }
#pmonTip .ptRow2 .ptIt .ptI + span + .ptI { margin: 0 4px 0 0; color: #8c94a8; }
#pmonTip .ptSm span { font: 500 8.5px "MmoName", "Segoe UI", sans-serif; letter-spacing: .75px; }
#pmonTip .ptR .ptClose { color: #a3abbd; }
.ptTitle { flex: none; height: 18px; padding: 1px 2px 0; color: #b0b7c7; font-size: 9px; line-height: 14px; letter-spacing: .25px; }
.ptMoveRow, .ptFm { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin: 0 -6px; }
.ptFollow { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin: 0 -6px; }
.ptFm { grid-template-columns: 1fr 1fr; }
#pmonTip .ptMoveRow button, #pmonTip .ptFollow button, #pmonTip .ptFm button { padding: 0 0 0 8px; background: #21222b; }
#pmonTip .ptMoveRow button:hover:not(:disabled), #pmonTip .ptFollow button:hover:not(:disabled), #pmonTip .ptFm button:hover:not(:disabled) { background: #292a35; }
#pmonTip .ptMoveRow span { flex: 1; padding-right: 6px; color: #dde2ee; font: 500 10.5px "MmoName", "Segoe UI", sans-serif; letter-spacing: .25px; text-align: center; }
#pmonTip .ptFollow .ptI, #pmonTip .ptFm .ptI { margin-right: 6px; }
.ptFollow span, .ptFm span { min-width: 0; padding-right: 6px; font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ptFm span { font-size: 12px; }
#pmonTip .ptFollow button.on { background: #2a2c38; box-shadow: inset 0 0 0 1px #5d6577; }
#pmonTip .ptR .ptFollow + hr { margin-top: 7px; }
#pmonTip .ptSub button { height: 31px; } #pmonTip .ptSub .ptNext span { flex: 1; } #pmonTip .ptSub .ptI { width: 14px; margin-right: 8px; } /* « Plus › » (2026-11-14) */
#pmonTip .ptSub .ptBox { flex: none; width: 13px; height: 13px; margin: 0 9px 0 1px; border: 1.5px solid #c9ccd6; border-radius: 2px; box-sizing: border-box; display: grid; place-items: center; }
#pmonTip .ptSub .ptChk.on .ptBox::after { content: ''; width: 7px; height: 4px; margin-top: -2px; border: solid #f4cf5a; border-width: 0 0 2px 2px; transform: rotate(-45deg); }
#pmonTip .ptSub .ptChk.on { background: none; } #pmonTip .ptSub .ptChk:hover { background: #ffffff0d; }
.ptMore { position: fixed; z-index: 1; display: flex; flex-direction: column; width: 180px; padding: 5px; background: rgba(17, 20, 31, .955); border: 1px solid #32333b; border-radius: 7px; box-shadow: 0 2px 3px #0006; }

/* ===== 0.5.407 : barre d'équipe à l'identique de PokeMMO (capture de l'utilisateur relevée pixel par pixel) ===== */
#party { width: auto; padding: 4px; background: rgba(22, 23, 31, .97); border: 1px solid #32333b; border-radius: 8px; box-shadow: none; } /* fond mesuré par régression sur la capture (bord intérieur contre la carte juste dehors) */
#partyList { gap: 4px; grid-auto-rows: 46px; grid-template-columns: 48px; }
#party .pmon, .pmon.ghost { width: 48px; height: 46px; box-sizing: border-box; display: block; background: #1f2231; border: 0; border-radius: 5px; box-shadow: none; overflow: hidden; }
#party .pmon:hover, .pmon.ghost { background: #31374c; box-shadow: inset 0 0 0 1px #31374c, inset 0 0 0 2px #787c8a; }
.pmon.ghost.summon { box-shadow: inset 0 0 0 1px #31374c, inset 0 0 0 2px #5bc869, 0 0 0 2px #5bc86988; }
#party .pmon.hole { background: none; box-shadow: inset 0 0 0 1px #787c8a; }
#party .pmon img, .pmon.ghost img { position: absolute; left: 8px; top: 3px; translate: none; width: 32px; height: 32px; object-fit: cover; object-position: 50% 0; image-rendering: pixelated; }
#party .pmon.lead::before, .pmon.ghost.lead::before { left: 4px; top: 4px; width: 9px; height: 9px; background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='9' height='9' shape-rendering='crispEdges'><path fill='%232b2c33' d='M1 0h1v1h-1zM6 0h1v1h-1zM8 3h1v1h-1z'/><path fill='%23ad8d44' d='M2 0h1v1h-1zM5 0h1v1h-1z'/><path fill='%23534a38' d='M3 0h1v1h-1zM4 0h1v1h-1zM1 5h1v1h-1zM6 5h1v1h-1z'/><path fill='%23373432' d='M1 1h1v1h-1zM6 1h1v1h-1z'/><path fill='%23eebe4d' d='M2 1h1v1h-1zM5 1h1v1h-1zM0 3h1v1h-1zM7 3h1v1h-1zM3 4h1v1h-1zM4 4h1v1h-1zM2 5h1v1h-1zM3 5h1v1h-1zM4 5h1v1h-1zM5 5h1v1h-1zM2 6h1v1h-1zM3 6h1v1h-1zM4 6h1v1h-1zM5 6h1v1h-1z'/><path fill='%23766237' d='M3 1h1v1h-1zM4 1h1v1h-1z'/><path fill='%2379663d' d='M0 2h1v1h-1zM7 2h1v1h-1z'/><path fill='%23363230' d='M1 2h1v1h-1z'/><path fill='%23050507' d='M2 2h1v1h-1zM5 2h1v1h-1z'/><path fill='%2313161f' d='M3 2h1v1h-1zM4 2h1v1h-1zM1 4h1v1h-1z'/><path fill='%23433c32' d='M6 2h1v1h-1z'/><path fill='%2378643a' d='M1 3h1v1h-1z'/><path fill='%23383635' d='M3 3h1v1h-1zM4 3h1v1h-1z'/><path fill='%23846d3b' d='M6 3h1v1h-1z'/><path fill='%23221d10' d='M0 4h1v1h-1z'/><path fill='%23a08442' d='M2 4h1v1h-1zM5 4h1v1h-1z'/><path fill='%2312141d' d='M6 4h1v1h-1zM3 8h1v1h-1zM4 8h1v1h-1z'/><path fill='%23312714' d='M7 4h1v1h-1z'/><path fill='%231c1f2c' d='M0 5h1v1h-1z'/><path fill='%231a1d29' d='M7 5h1v1h-1z'/><path fill='%23836d3a' d='M1 6h1v1h-1zM6 6h1v1h-1z'/><path fill='%231f1f1f' d='M1 7h1v1h-1zM6 7h1v1h-1z'/><path fill='%23987933' d='M2 7h1v1h-1zM5 7h1v1h-1z'/><path fill='%237a612a' d='M3 7h1v1h-1zM4 7h1v1h-1z'/><path fill='%230e1017' d='M2 8h1v1h-1zM5 8h1v1h-1z'/></svg>") 0 0 / 9px 9px no-repeat; filter: none; }
#party .pmon .pIt { left: 34px; top: 22px; }
#party .pmon .hp, .pmon.ghost .hp { position: absolute; left: 5px; right: 5px; bottom: 5px; height: 4px; background: none; border: 0; border-radius: 0; box-sizing: border-box; }
#party .pmon .hp i, .pmon.ghost .hp i { border-radius: 0; background: linear-gradient(#b871b24d 0 0) 0 0 / 1px 1px no-repeat, linear-gradient(#b871b24d 0 0) 100% 0 / 1px 1px no-repeat, linear-gradient(#b871b24d 0 0) 0 100% / 1px 1px no-repeat, linear-gradient(#b871b24d 0 0) 100% 100% / 1px 1px no-repeat, linear-gradient(#a18ca51a 0 0) 1px 0 / 1px 1px no-repeat, linear-gradient(#a18ca51a 0 0) calc(100% - 1px) 0 / 1px 1px no-repeat, linear-gradient(#a18ca51a 0 0) 1px 100% / 1px 1px no-repeat, linear-gradient(#a18ca51a 0 0) calc(100% - 1px) 100% / 1px 1px no-repeat; box-shadow: inset 1px 0 0 #a18ca51a, inset -1px 0 0 #a18ca51a; -webkit-mask: linear-gradient(#000 0 0) 0 1px / 100% 2px no-repeat, linear-gradient(#000 0 0) 1px 0 / calc(100% - 2px) 100% no-repeat, linear-gradient(#0008 0 0); } /* bouts de la barre de vie de PokeMMO : coins à moitié, colonne du bout plus claire */
.pEmpty { width: 48px; height: 46px; border-radius: 5px; background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='46' shape-rendering='crispEdges'><path fill='%2364646c' fill-opacity='0.28' d='M3 0h1v1h-1zM47 9h1v1h-1zM47 19h1v1h-1zM47 24h1v1h-1zM47 29h1v1h-1zM47 34h1v1h-1zM47 39h1v1h-1zM47 42h1v1h-1z'/><path fill='%2364646c' fill-opacity='0.39' d='M4 0h1v1h-1zM3 1h1v1h-1zM0 41h1v1h-1z'/><path fill='%2364646c' fill-opacity='0.71' d='M6 0h1v1h-1zM7 0h1v1h-1zM8 0h1v1h-1zM11 0h1v1h-1zM12 0h1v1h-1zM17 0h1v1h-1zM18 0h1v1h-1zM21 0h1v1h-1zM22 0h1v1h-1zM23 0h1v1h-1zM26 0h1v1h-1zM27 0h1v1h-1zM28 0h1v1h-1zM31 0h1v1h-1zM32 0h1v1h-1zM33 0h1v1h-1zM36 0h1v1h-1zM37 0h1v1h-1zM38 0h1v1h-1zM41 0h1v1h-1zM47 7h1v1h-1zM47 8h1v1h-1zM0 9h1v1h-1zM0 10h1v1h-1zM47 12h1v1h-1zM47 13h1v1h-1zM0 14h1v1h-1zM0 15h1v1h-1zM47 17h1v1h-1zM47 18h1v1h-1zM0 19h1v1h-1zM0 20h1v1h-1zM47 22h1v1h-1zM47 23h1v1h-1zM0 24h1v1h-1zM0 25h1v1h-1zM47 27h1v1h-1zM47 28h1v1h-1zM0 29h1v1h-1zM0 30h1v1h-1zM47 32h1v1h-1zM0 34h1v1h-1zM0 35h1v1h-1zM0 39h1v1h-1zM13 45h1v1h-1zM17 45h1v1h-1zM18 45h1v1h-1zM22 45h1v1h-1zM23 45h1v1h-1zM32 45h1v1h-1zM33 45h1v1h-1z'/><path fill='%2364646c' fill-opacity='0.67' d='M13 0h1v1h-1zM16 0h1v1h-1zM0 5h1v1h-1zM47 33h1v1h-1zM47 37h1v1h-1zM47 38h1v1h-1zM7 45h1v1h-1zM8 45h1v1h-1zM12 45h1v1h-1zM27 45h1v1h-1zM28 45h1v1h-1zM37 45h1v1h-1zM38 45h1v1h-1zM42 45h1v1h-1z'/><path fill='%2364646c' fill-opacity='0.64' d='M42 0h1v1h-1zM0 40h1v1h-1z'/><path fill='%2364646c' fill-opacity='0.5' d='M43 0h1v1h-1zM0 4h1v1h-1zM3 44h1v1h-1zM43 45h1v1h-1z'/><path fill='%2364646c' fill-opacity='0.46' d='M2 1h1v1h-1zM46 2h1v1h-1zM46 43h1v1h-1zM2 44h1v1h-1z'/><path fill='%2364646c' fill-opacity='0.14' d='M4 1h1v1h-1zM1 41h1v1h-1zM46 41h1v1h-1zM14 45h1v1h-1zM19 45h1v1h-1zM24 45h1v1h-1zM29 45h1v1h-1zM34 45h1v1h-1z'/><path fill='%2364646c' fill-opacity='0.18' d='M43 1h1v1h-1zM1 4h1v1h-1zM0 23h1v1h-1zM0 33h1v1h-1zM1 43h1v1h-1zM43 44h1v1h-1z'/><path fill='%2364646c' fill-opacity='0.21' d='M2 2h1v1h-1zM45 2h1v1h-1zM47 4h1v1h-1zM0 8h1v1h-1zM0 13h1v1h-1zM0 18h1v1h-1zM0 28h1v1h-1zM0 38h1v1h-1zM2 43h1v1h-1z'/><path fill='%2364646c' fill-opacity='0.43' d='M46 3h1v1h-1zM47 6h1v1h-1zM47 11h1v1h-1zM47 16h1v1h-1zM47 21h1v1h-1zM47 26h1v1h-1zM47 31h1v1h-1zM47 36h1v1h-1zM46 42h1v1h-1z'/><path fill='%2364646c' fill-opacity='0.25' d='M47 3h1v1h-1zM45 43h1v1h-1zM3 45h1v1h-1z'/><path fill='%2364646c' fill-opacity='0.53' d='M0 6h1v1h-1zM0 11h1v1h-1zM0 16h1v1h-1zM0 21h1v1h-1zM0 26h1v1h-1zM0 31h1v1h-1zM0 36h1v1h-1z'/><path fill='%2364646c' fill-opacity='0.32' d='M47 14h1v1h-1zM47 41h1v1h-1z'/><path fill='%2364646c' fill-opacity='0.6' d='M6 45h1v1h-1zM11 45h1v1h-1zM16 45h1v1h-1zM21 45h1v1h-1zM26 45h1v1h-1zM31 45h1v1h-1zM36 45h1v1h-1zM41 45h1v1h-1z'/></svg>") 0 0 / 48px 46px no-repeat, rgba(9, 22, 41, .15); }
#partyCtl { height: 18px; margin-top: 4px; }
#partyGrip, #partyGrip:hover, #party.winEdit #partyGrip { width: 14px; height: 18px; margin-left: 4px; background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='6' height='9' shape-rendering='crispEdges'><path fill='%23292a30' d='M0 0h1v1h-1zM3 0h1v1h-1zM0 3h1v1h-1zM3 3h1v1h-1z'/><path fill='%238b91a0' d='M1 0h1v1h-1zM4 0h1v1h-1zM1 3h1v1h-1zM4 3h1v1h-1z'/><path fill='%23555962' d='M2 0h1v1h-1zM2 3h1v1h-1z'/><path fill='%23525661' d='M5 0h1v1h-1zM5 3h1v1h-1zM2 6h1v1h-1z'/><path fill='%2326262c' d='M0 1h1v1h-1zM3 1h1v1h-1zM0 4h1v1h-1zM3 4h1v1h-1z'/><path fill='%23808695' d='M1 1h1v1h-1zM4 1h1v1h-1zM1 4h1v1h-1zM4 4h1v1h-1zM1 7h1v1h-1zM4 7h1v1h-1z'/><path fill='%23393b41' d='M2 1h1v1h-1zM2 4h1v1h-1z'/><path fill='%23363941' d='M5 1h1v1h-1zM5 4h1v1h-1zM2 7h1v1h-1z'/><path fill='%2309090b' d='M1 2h1v1h-1zM4 2h1v1h-1zM1 5h1v1h-1zM4 5h1v1h-1z'/><path fill='%23151518' d='M2 2h1v1h-1zM2 5h1v1h-1z'/><path fill='%23111218' d='M5 2h1v1h-1zM5 5h1v1h-1zM2 8h1v1h-1z'/><path fill='%23282731' d='M0 6h1v1h-1z'/><path fill='%238a91a0' d='M1 6h1v1h-1zM4 6h1v1h-1z'/><path fill='%2324262f' d='M3 6h1v1h-1z'/><path fill='%23555762' d='M5 6h1v1h-1z'/><path fill='%2326252d' d='M0 7h1v1h-1z'/><path fill='%2321232b' d='M3 7h1v1h-1z'/><path fill='%23383a42' d='M5 7h1v1h-1z'/><path fill='%2307080a' d='M1 8h1v1h-1zM4 8h1v1h-1z'/><path fill='%2314151c' d='M3 8h1v1h-1z'/><path fill='%23151319' d='M5 8h1v1h-1z'/></svg>") 4px 5px / 6px 9px no-repeat; }
#partyGrip:hover { filter: brightness(1.35); } #party.winEdit #partyGrip { filter: sepia(1) saturate(5) hue-rotate(5deg) brightness(1.3); }
#partyDir, #partyDir:hover { width: 14px; height: 18px; margin-right: 5px; background: none; border: 0; border-radius: 0; }
#partyDir svg { display: none; }
#partyDir::before { content: ""; position: absolute; left: 4px; top: 3px; width: 6px; height: 13px; background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='6' height='13' shape-rendering='crispEdges'><path fill='%234d515e' d='M1 0h1v1h-1z'/><path fill='%233b3e4a' d='M2 0h1v1h-1zM3 0h1v1h-1z'/><path fill='%23313542' d='M4 0h1v1h-1z'/><path fill='%23393d48' d='M0 1h1v1h-1z'/><path fill='%23989eb0' d='M1 1h1v1h-1z'/><path fill='%237e8493' d='M2 1h1v1h-1zM3 1h1v1h-1z'/><path fill='%23737988' d='M4 1h1v1h-1z'/><path fill='%23393d4a' d='M5 1h1v1h-1zM5 8h1v1h-1z'/><path fill='%235b5e6b' d='M0 2h1v1h-1z'/><path fill='%23535861' d='M1 2h1v1h-1z'/><path fill='%23090a0d' d='M2 2h1v1h-1zM3 2h1v1h-1z'/><path fill='%23555a64' d='M4 2h1v1h-1zM4 9h1v1h-1z'/><path fill='%235a5e6b' d='M5 2h1v1h-1zM5 9h1v1h-1z'/><path fill='%2331343c' d='M0 3h1v1h-1z'/><path fill='%23717785' d='M1 3h1v1h-1zM1 10h1v1h-1z'/><path fill='%237f8595' d='M2 3h1v1h-1zM3 3h1v1h-1z'/><path fill='%23707684' d='M4 3h1v1h-1zM4 10h1v1h-1z'/><path fill='%2330333c' d='M5 3h1v1h-1zM0 10h1v1h-1zM5 10h1v1h-1z'/><path fill='%2313161e' d='M0 4h1v1h-1z'/><path fill='%23939baa' d='M1 4h1v1h-1z'/><path fill='%23848b9a' d='M2 4h1v1h-1zM3 4h1v1h-1z'/><path fill='%236d7280' d='M4 4h1v1h-1z'/><path fill='%2314171f' d='M5 4h1v1h-1z'/><path fill='%23585d6b' d='M0 5h1v1h-1zM5 5h1v1h-1z'/><path fill='%23717784' d='M1 5h1v1h-1z'/><path fill='%232d3037' d='M2 5h1v1h-1zM3 5h1v1h-1z'/><path fill='%235d616d' d='M4 5h1v1h-1zM1 6h1v1h-1zM4 6h1v1h-1z'/><path fill='%23535762' d='M0 6h1v1h-1z'/><path fill='%23353844' d='M2 6h1v1h-1zM3 6h1v1h-1z'/><path fill='%23535863' d='M5 6h1v1h-1z'/><path fill='%23101219' d='M0 7h1v1h-1z'/><path fill='%237a808f' d='M1 7h1v1h-1z'/><path fill='%23868d9d' d='M2 7h1v1h-1zM3 7h1v1h-1z'/><path fill='%236d7381' d='M4 7h1v1h-1z'/><path fill='%23101218' d='M5 7h1v1h-1z'/><path fill='%23373b48' d='M0 8h1v1h-1z'/><path fill='%23979eaf' d='M1 8h1v1h-1z'/><path fill='%237a818f' d='M2 8h1v1h-1zM3 8h1v1h-1z'/><path fill='%23707683' d='M4 8h1v1h-1z'/><path fill='%23595e6b' d='M0 9h1v1h-1z'/><path fill='%23535761' d='M1 9h1v1h-1z'/><path fill='%2308090d' d='M2 9h1v1h-1zM3 9h1v1h-1z'/><path fill='%237e8595' d='M2 10h1v1h-1zM3 10h1v1h-1z'/><path fill='%2312151d' d='M0 11h1v1h-1zM5 11h1v1h-1z'/><path fill='%23282b32' d='M1 11h1v1h-1zM4 11h1v1h-1z'/><path fill='%232e3138' d='M2 11h1v1h-1zM3 11h1v1h-1z'/><path fill='%2313161f' d='M1 12h1v1h-1zM4 12h1v1h-1z'/><path fill='%2312141d' d='M2 12h1v1h-1zM3 12h1v1h-1z'/></svg>") 0 0 / 6px 13px no-repeat; }
#partyDir:hover::before { filter: brightness(1.35); }
#party.pRow #partyList { grid-auto-flow: column; grid-auto-columns: 48px; grid-template-columns: none; grid-template-rows: 46px; }
#party.pRow #partyCtl { height: auto; width: 14px; margin: 0; padding: 0; }
#party.pRow #partyGrip, #party.pRow #partyDir { margin: 0; }
#party.pRow #partyDir::before { rotate: 90deg; }

/* ===== 0.5.408 : barre d'équipe au repos transparente comme PokeMMO, bleu nuit au survol, au clic et au déplacement (mesures sur ses captures) ===== */
#party { right: 9px; background: rgba(17, 20, 32, .4); border-color: transparent; }
#party .pmon { background: rgba(32, 35, 51, .9); }
.pEmpty { background-color: rgba(17, 20, 32, .333); }
#party:is(:hover, .pAct, .winEdit) { background: rgba(22, 23, 31, .97); border-color: #32333b; }
#party:is(:hover, .pAct, .winEdit) .pmon { background: #1f2231; }
#party:is(:hover, .pAct, .winEdit) .pmon:hover { background: #31374c; }
#party:is(:hover, .pAct, .winEdit) .pEmpty { background-color: rgba(9, 22, 41, .15); }
#party.winEdit { border-color: #9f8342; box-shadow: none; }
#party.winEdit #partyGrip { background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='6' height='9' shape-rendering='crispEdges'><path fill='%232f2925' d='M0 0h1v1h-1zM0 3h1v1h-1z'/><path fill='%23cba245' d='M1 0h1v1h-1zM4 0h1v1h-1zM1 3h1v1h-1zM4 3h1v1h-1zM1 6h1v1h-1zM4 6h1v1h-1z'/><path fill='%23735e32' d='M2 0h1v1h-1zM2 3h1v1h-1z'/><path fill='%232d2823' d='M3 0h1v1h-1zM3 3h1v1h-1z'/><path fill='%23735f35' d='M5 0h1v1h-1zM5 3h1v1h-1z'/><path fill='%232b2622' d='M0 1h1v1h-1z'/><path fill='%23bd983e' d='M1 1h1v1h-1zM4 1h1v1h-1zM1 4h1v1h-1zM4 4h1v1h-1zM1 7h1v1h-1zM4 7h1v1h-1z'/><path fill='%234c3f23' d='M2 1h1v1h-1z'/><path fill='%232a2520' d='M3 1h1v1h-1z'/><path fill='%234c3f25' d='M5 1h1v1h-1z'/><path fill='%2308080a' d='M1 2h1v1h-1zM4 2h1v1h-1z'/><path fill='%23121218' d='M2 2h1v1h-1z'/><path fill='%2315151c' d='M3 2h1v1h-1z'/><path fill='%2311121c' d='M5 2h1v1h-1z'/><path fill='%232b2821' d='M0 4h1v1h-1zM3 4h1v1h-1zM0 7h1v1h-1zM3 7h1v1h-1z'/><path fill='%234d4023' d='M2 4h1v1h-1zM2 7h1v1h-1z'/><path fill='%234b3e23' d='M5 4h1v1h-1zM5 7h1v1h-1z'/><path fill='%2308090b' d='M1 5h1v1h-1zM4 5h1v1h-1zM1 8h1v1h-1zM4 8h1v1h-1z'/><path fill='%23131418' d='M2 5h1v1h-1zM2 8h1v1h-1z'/><path fill='%230f1118' d='M5 5h1v1h-1zM5 8h1v1h-1z'/><path fill='%232f2b24' d='M0 6h1v1h-1zM3 6h1v1h-1z'/><path fill='%23756033' d='M2 6h1v1h-1z'/><path fill='%23725e32' d='M5 6h1v1h-1z'/></svg>"); filter: none; }
#party .pmon.hole { background: none; }

/* ===== 0.5.409 : chat à l'identique de PokeMMO (ses captures relevées pixel par pixel) ===== */
#chat { --chatA: .92; will-change: transform; box-sizing: border-box; padding: 0; background: rgba(17, 20, 32, var(--chatA)); border: 1px solid #32333b; border-radius: 8px; box-shadow: none; transition: background .4s, border-color .4s; }
#chat, #chat.locked { border-color: #9b7e3e; } /* trait jaune autour du chat, toujours (demande du 2026-11-11) */
#chat .chatTabs { position: relative; flex: none; height: 37px; padding: 5px 0 0 4px; gap: 4px; align-items: flex-start; box-sizing: border-box; }
#chat .chatTabs > button { height: 26px; padding: 0 5.5px; font: 400 11.75px "MmoName", var(--mmoFont); color: #a2aabc !important; background: none; border-radius: 4px; }
#chat .chatTabs > button.on { color: #f1efe8 !important; background: #30313b; }
/* boîtes des onglets relevées sur les captures : encre - 5 px à gauche, + 6 px à droite, 28 px de haut */
#chat .chatTabs { padding: 4px 0 0 4px; gap: 0; }
#chat .chatTabs > button { height: 28px; padding: 0 0 0 4px; text-align: left; flex: none; }
#chat .chatTabs > button[data-ch="normal"] { width: 40px; }
#chat .chatTabs > button[data-ch="global"] { width: 47px; margin-left: 5px; }
#chat .chatTabs > button[data-ch="echange"] { width: 44px; margin-left: 4px; padding-left: 5px; }
#chat .chatTabs > button[data-ch="mp"] { width: 63px; margin-left: 4px; padding-left: 5px; }
#chat .chatTabs > button[data-ch="combat"] { width: 45px; margin-left: 4px; }
#chat .chatTools { position: absolute; top: 7px; right: 8px; gap: 0; margin: 0; }
#chat .chatTools button { position: relative; width: 24px; height: 24px; padding: 0; border-radius: 0; background: none no-repeat; }
#chat .chatTools button:hover { background-color: transparent; filter: brightness(1.25); }
#chat .chatTools button > svg { display: none; }
#chatFlag { background-position: 4px 6px !important; }
#chatFlag[data-lang="FR"] { background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='17' height='13' shape-rendering='crispEdges'><path fill='%237294d1' d='M1 1h1v1h-1zM2 1h1v1h-1zM3 1h1v1h-1zM4 1h1v1h-1zM1 2h1v1h-1zM1 3h1v1h-1z'/><path fill='%237090cf' d='M5 1h1v1h-1z'/><path fill='%23dddddd' d='M6 1h1v1h-1z'/><path fill='%23dadada' d='M7 1h1v1h-1z'/><path fill='%23d3d3d3' d='M8 1h1v1h-1z'/><path fill='%23d0d0d0' d='M9 1h1v1h-1z'/><path fill='%23cccccc' d='M10 1h1v1h-1z'/><path fill='%23cdcdcd' d='M11 1h1v1h-1z'/><path fill='%23ef1300' d='M12 1h1v1h-1z'/><path fill='%23ed0700' d='M13 1h1v1h-1z'/><path fill='%23e90000' d='M14 1h1v1h-1z'/><path fill='%23e50000' d='M15 1h1v1h-1z'/><path fill='%23e30000' d='M16 1h1v1h-1z'/><path fill='%23c2d1eb' d='M2 2h1v1h-1zM3 2h1v1h-1z'/><path fill='%23c1cfea' d='M4 2h1v1h-1z'/><path fill='%23bfcde9' d='M5 2h1v1h-1z'/><path fill='%23f6f6f6' d='M6 2h1v1h-1z'/><path fill='%23f5f5f5' d='M7 2h1v1h-1zM8 2h1v1h-1z'/><path fill='%23f4f4f4' d='M9 2h1v1h-1z'/><path fill='%23f2f2f2' d='M10 2h1v1h-1z'/><path fill='%23f1f1f1' d='M11 2h1v1h-1z'/><path fill='%23f6968d' d='M12 2h1v1h-1z'/><path fill='%23f59288' d='M13 2h1v1h-1z'/><path fill='%23f38c82' d='M14 2h1v1h-1z'/><path fill='%23f2877d' d='M15 2h1v1h-1z'/><path fill='%23df0000' d='M16 2h1v1h-1z'/><path fill='%23c2d0eb' d='M2 3h1v1h-1z'/><path fill='%23b6c6e6' d='M3 3h1v1h-1z'/><path fill='%23b3c3e5' d='M4 3h1v1h-1zM3 4h1v1h-1z'/><path fill='%23b1c1e3' d='M5 3h1v1h-1z'/><path fill='%23ebebeb' d='M6 3h1v1h-1zM7 5h1v1h-1zM8 6h1v1h-1zM9 6h1v1h-1zM6 10h1v1h-1z'/><path fill='%23eaeaea' d='M7 3h1v1h-1zM8 4h1v1h-1zM8 7h1v1h-1zM7 8h1v1h-1zM6 9h1v1h-1zM7 10h1v1h-1z'/><path fill='%23e9e9e9' d='M8 3h1v1h-1zM7 4h1v1h-1zM9 4h1v1h-1zM10 6h1v1h-1zM9 7h1v1h-1zM8 8h1v1h-1z'/><path fill='%23e7e7e7' d='M9 3h1v1h-1zM10 4h1v1h-1zM11 6h1v1h-1z'/><path fill='%23e8e8e8' d='M10 3h1v1h-1zM7 9h1v1h-1zM8 10h1v1h-1z'/><path fill='%23e5e5e5' d='M11 3h1v1h-1zM11 7h1v1h-1zM10 10h1v1h-1z'/><path fill='%23f37c71' d='M12 3h1v1h-1z'/><path fill='%23f1766a' d='M13 3h1v1h-1z'/><path fill='%23f07063' d='M14 3h1v1h-1z'/><path fill='%23f08377' d='M15 3h1v1h-1z'/><path fill='%23db0000' d='M16 3h1v1h-1z'/><path fill='%237292d1' d='M1 4h1v1h-1z'/><path fill='%23c1ceea' d='M2 4h1v1h-1z'/><path fill='%23b0c1e3' d='M4 4h1v1h-1z'/><path fill='%23adbee2' d='M5 4h1v1h-1zM4 5h1v1h-1z'/><path fill='%23ededed' d='M6 4h1v1h-1zM7 6h1v1h-1z'/><path fill='%23e3e3e3' d='M11 4h1v1h-1zM11 5h1v1h-1zM11 10h1v1h-1z'/><path fill='%23f17669' d='M12 4h1v1h-1z'/><path fill='%23ef6f63' d='M13 4h1v1h-1z'/><path fill='%23ee6b5c' d='M14 4h1v1h-1z'/><path fill='%23ef7d71' d='M15 4h1v1h-1z'/><path fill='%23d90000' d='M16 4h1v1h-1z'/><path fill='%236e8ecf' d='M1 5h1v1h-1z'/><path fill='%23becce8' d='M2 5h1v1h-1z'/><path fill='%23b0c0e3' d='M3 5h1v1h-1z'/><path fill='%23a9bcdf' d='M5 5h1v1h-1z'/><path fill='%23ececec' d='M6 5h1v1h-1zM7 7h1v1h-1zM6 8h1v1h-1z'/><path fill='%23eae9e9' d='M8 5h1v1h-1z'/><path fill='%23e7e7e8' d='M9 5h1v1h-1z'/><path fill='%23e6e6e6' d='M10 5h1v1h-1zM10 7h1v1h-1zM9 8h1v1h-1zM8 9h1v1h-1zM9 10h1v1h-1z'/><path fill='%23ef6f62' d='M12 5h1v1h-1z'/><path fill='%23ee695b' d='M13 5h1v1h-1z'/><path fill='%23ec6356' d='M14 5h1v1h-1z'/><path fill='%23ed776b' d='M15 5h1v1h-1z'/><path fill='%23d30000' d='M16 5h1v1h-1z'/><path fill='%236888cb' d='M1 6h1v1h-1z'/><path fill='%23bdcae7' d='M2 6h1v1h-1z'/><path fill='%23adbee1' d='M3 6h1v1h-1z'/><path fill='%23a8bcdf' d='M4 6h1v1h-1z'/><path fill='%23a5b8de' d='M5 6h1v1h-1z'/><path fill='%23efefef' d='M6 6h1v1h-1z'/><path fill='%23ed685b' d='M12 6h1v1h-1z'/><path fill='%23ec6355' d='M13 6h1v1h-1z'/><path fill='%23ea5d4f' d='M14 6h1v1h-1z'/><path fill='%23eb7367' d='M15 6h1v1h-1z'/><path fill='%23d10000' d='M16 6h1v1h-1z'/><path fill='%236284c9' d='M1 7h1v1h-1z'/><path fill='%23b9c7e6' d='M2 7h1v1h-1z'/><path fill='%23a8bbdf' d='M3 7h1v1h-1z'/><path fill='%23a4b8dd' d='M4 7h1v1h-1z'/><path fill='%23a0b4db' d='M5 7h1v1h-1z'/><path fill='%23eeeeee' d='M6 7h1v1h-1z'/><path fill='%23ec6254' d='M12 7h1v1h-1z'/><path fill='%23e95c4e' d='M13 7h1v1h-1zM12 8h1v1h-1z'/><path fill='%23e85649' d='M14 7h1v1h-1z'/><path fill='%23ea6d61' d='M15 7h1v1h-1z'/><path fill='%23cb0000' d='M16 7h1v1h-1zM12 11h1v1h-1z'/><path fill='%235a7ec5' d='M1 8h1v1h-1z'/><path fill='%23b6c5e4' d='M2 8h1v1h-1z'/><path fill='%23a4b7dd' d='M3 8h1v1h-1z'/><path fill='%239fb4db' d='M4 8h1v1h-1z'/><path fill='%239bafd8' d='M5 8h1v1h-1zM4 9h1v1h-1z'/><path fill='%23e4e4e4' d='M10 8h1v1h-1zM9 9h1v1h-1z'/><path fill='%23e2e2e2' d='M11 8h1v1h-1zM10 9h1v1h-1z'/><path fill='%23e85647' d='M13 8h1v1h-1z'/><path fill='%23e65142' d='M14 8h1v1h-1zM13 9h1v1h-1z'/><path fill='%23e8695c' d='M15 8h1v1h-1z'/><path fill='%23c90000' d='M16 8h1v1h-1zM13 11h1v1h-1z'/><path fill='%235276c1' d='M1 9h1v1h-1z'/><path fill='%23b2c1e2' d='M2 9h1v1h-1z'/><path fill='%239fb3db' d='M3 9h1v1h-1z'/><path fill='%2396abd6' d='M5 9h1v1h-1z'/><path fill='%23e0e0e0' d='M11 9h1v1h-1z'/><path fill='%23e75547' d='M12 9h1v1h-1z'/><path fill='%23e44c3e' d='M14 9h1v1h-1z'/><path fill='%23e76559' d='M15 9h1v1h-1z'/><path fill='%23c50000' d='M16 9h1v1h-1zM14 11h1v1h-1z'/><path fill='%234870bc' d='M1 10h1v1h-1z'/><path fill='%23aebee0' d='M2 10h1v1h-1z'/><path fill='%23a9bcde' d='M3 10h1v1h-1z'/><path fill='%23a6b8db' d='M4 10h1v1h-1z'/><path fill='%23a2b4da' d='M5 10h1v1h-1z'/><path fill='%23ea6c60' d='M12 10h1v1h-1z'/><path fill='%23e8685c' d='M13 10h1v1h-1z'/><path fill='%23e76558' d='M14 10h1v1h-1z'/><path fill='%23e66254' d='M15 10h1v1h-1z'/><path fill='%23c30000' d='M16 10h1v1h-1zM15 11h1v1h-1zM16 11h1v1h-1z'/><path fill='%233f66b8' d='M1 11h1v1h-1z'/><path fill='%23355eb4' d='M2 11h1v1h-1z'/><path fill='%232d56ae' d='M3 11h1v1h-1z'/><path fill='%23234eaa' d='M4 11h1v1h-1z'/><path fill='%231746a4' d='M5 11h1v1h-1z'/><path fill='%23bdbdbd' d='M6 11h1v1h-1z'/><path fill='%23b7b7b7' d='M7 11h1v1h-1z'/><path fill='%23b2afaf' d='M8 11h1v1h-1z'/><path fill='%23acacac' d='M9 11h1v1h-1z'/><path fill='%23a6a6a6' d='M10 11h1v1h-1z'/><path fill='%239e9e9e' d='M11 11h1v1h-1z'/></svg>") !important; } #chatFlag[data-lang="EN"] { background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='17' height='13' shape-rendering='crispEdges'><path fill='%239198bd' d='M1 1h1v1h-1z'/><path fill='%23b7d3ea' d='M2 1h1v1h-1z'/><path fill='%237a96c4' d='M3 1h1v1h-1z'/><path fill='%236382c4' d='M4 1h1v1h-1z'/><path fill='%236382c1' d='M5 1h1v1h-1z'/><path fill='%236080be' d='M6 1h1v1h-1z'/><path fill='%23d7dbeb' d='M7 1h1v1h-1zM10 1h1v1h-1zM1 5h1v1h-1zM1 7h1v1h-1z'/><path fill='%23ac6280' d='M8 1h1v1h-1z'/><path fill='%23ab5f7d' d='M9 1h1v1h-1z'/><path fill='%23486ab5' d='M11 1h1v1h-1z'/><path fill='%234765b7' d='M12 1h1v1h-1z'/><path fill='%233d5baf' d='M13 1h1v1h-1z'/><path fill='%235980b8' d='M14 1h1v1h-1z'/><path fill='%239b506e' d='M15 1h1v1h-1z'/><path fill='%237a9cc3' d='M16 1h1v1h-1z'/><path fill='%23a3a7c8' d='M1 2h1v1h-1z'/><path fill='%23fdb0a9' d='M2 2h1v1h-1z'/><path fill='%23fcfcfd' d='M3 2h1v1h-1zM7 2h1v1h-1zM10 2h1v1h-1zM2 5h1v1h-1zM15 5h1v1h-1zM2 7h1v1h-1zM7 10h1v1h-1z'/><path fill='%23d9dff2' d='M4 2h1v1h-1z'/><path fill='%23a1afd9' d='M5 2h1v1h-1z'/><path fill='%239eaeda' d='M6 2h1v1h-1z'/><path fill='%23fd938b' d='M8 2h1v1h-1z'/><path fill='%23fd8d84' d='M9 2h1v1h-1z'/><path fill='%2391a0d1' d='M11 2h1v1h-1z'/><path fill='%238c9cce' d='M12 2h1v1h-1z'/><path fill='%23c7c6e1' d='M13 2h1v1h-1z'/><path fill='%23fc897b' d='M14 2h1v1h-1z'/><path fill='%23fcfbf7' d='M15 2h1v1h-1z'/><path fill='%238fb1ce' d='M16 2h1v1h-1z'/><path fill='%236183bf' d='M1 3h1v1h-1zM1 4h1v1h-1z'/><path fill='%23bbc7ec' d='M2 3h1v1h-1z'/><path fill='%23fda4a6' d='M3 3h1v1h-1z'/><path fill='%23fdbfbc' d='M4 3h1v1h-1z'/><path fill='%23fdfdfd' d='M5 3h1v1h-1zM7 3h1v1h-1zM10 3h1v1h-1zM14 3h1v1h-1zM6 4h1v1h-1zM7 4h1v1h-1zM10 4h1v1h-1zM3 5h1v1h-1zM4 5h1v1h-1zM5 5h1v1h-1zM6 5h1v1h-1zM7 5h1v1h-1zM10 5h1v1h-1zM11 5h1v1h-1zM12 5h1v1h-1zM13 5h1v1h-1zM14 5h1v1h-1zM3 7h1v1h-1zM4 7h1v1h-1zM5 7h1v1h-1zM6 7h1v1h-1zM7 7h1v1h-1zM10 7h1v1h-1zM12 7h1v1h-1zM7 8h1v1h-1zM10 8h1v1h-1zM3 9h1v1h-1zM7 9h1v1h-1z'/><path fill='%238595d3' d='M6 3h1v1h-1z'/><path fill='%23fd6468' d='M8 3h1v1h-1z'/><path fill='%23fd5f60' d='M9 3h1v1h-1z'/><path fill='%23738dd0' d='M11 3h1v1h-1z'/><path fill='%23f2a1ab' d='M12 3h1v1h-1z'/><path fill='%23f58a8a' d='M13 3h1v1h-1z'/><path fill='%239da9d0' d='M15 3h1v1h-1z'/><path fill='%23193497' d='M16 3h1v1h-1z'/><path fill='%23a0afdb' d='M2 4h1v1h-1z'/><path fill='%237d90d3' d='M3 4h1v1h-1z'/><path fill='%23dfbddd' d='M4 4h1v1h-1z'/><path fill='%23fa817e' d='M5 4h1v1h-1z'/><path fill='%23fd5b5b' d='M8 4h1v1h-1z'/><path fill='%23fd5657' d='M9 4h1v1h-1z'/><path fill='%23fd6c68' d='M11 4h1v1h-1z'/><path fill='%23fde6e6' d='M12 4h1v1h-1z'/><path fill='%23cedaeb' d='M13 4h1v1h-1z'/><path fill='%234048a6' d='M14 4h1v1h-1z'/><path fill='%237181c2' d='M15 4h1v1h-1z'/><path fill='%23112d90' d='M16 4h1v1h-1z'/><path fill='%23fd5454' d='M8 5h1v1h-1z'/><path fill='%23fd4d4d' d='M9 5h1v1h-1zM7 6h1v1h-1z'/><path fill='%23cad4e7' d='M16 5h1v1h-1z'/><path fill='%23ab607c' d='M1 6h1v1h-1z'/><path fill='%23fd9287' d='M2 6h1v1h-1z'/><path fill='%23fd6363' d='M3 6h1v1h-1z'/><path fill='%23fd5e5e' d='M4 6h1v1h-1z'/><path fill='%23fd5858' d='M5 6h1v1h-1z'/><path fill='%23fd5353' d='M6 6h1v1h-1z'/><path fill='%23fd4b4b' d='M8 6h1v1h-1z'/><path fill='%23fc4444' d='M9 6h1v1h-1z'/><path fill='%23f83f3f' d='M10 6h1v1h-1z'/><path fill='%23f73939' d='M11 6h1v1h-1z'/><path fill='%23f53434' d='M12 6h1v1h-1z'/><path fill='%23f32e2e' d='M13 6h1v1h-1z'/><path fill='%23f32b2b' d='M14 6h1v1h-1z'/><path fill='%23f75245' d='M15 6h1v1h-1z'/><path fill='%23841f3a' d='M16 6h1v1h-1z'/><path fill='%23fd3d3d' d='M8 7h1v1h-1z'/><path fill='%23fa3638' d='M9 7h1v1h-1z'/><path fill='%23fdfdfc' d='M11 7h1v1h-1z'/><path fill='%23fbfbfb' d='M13 7h1v1h-1z'/><path fill='%23fafbfa' d='M14 7h1v1h-1z'/><path fill='%23f9fafa' d='M15 7h1v1h-1z'/><path fill='%23c7d3e6' d='M16 7h1v1h-1z'/><path fill='%233f5db1' d='M1 8h1v1h-1z'/><path fill='%238b9bcd' d='M2 8h1v1h-1z'/><path fill='%235965b7' d='M3 8h1v1h-1z'/><path fill='%23d2d3ed' d='M4 8h1v1h-1z'/><path fill='%23fdebea' d='M5 8h1v1h-1z'/><path fill='%23f7625e' d='M6 8h1v1h-1z'/><path fill='%23fc3234' d='M8 8h1v1h-1z'/><path fill='%23f92f31' d='M9 8h1v1h-1z'/><path fill='%23fdfdfb' d='M11 8h1v1h-1z'/><path fill='%23e34140' d='M12 8h1v1h-1z'/><path fill='%23be98b4' d='M13 8h1v1h-1z'/><path fill='%23181b99' d='M14 8h1v1h-1z'/><path fill='%23535fae' d='M15 8h1v1h-1z'/><path fill='%2300136a' d='M16 8h1v1h-1z'/><path fill='%233755ad' d='M1 9h1v1h-1z'/><path fill='%23a2aed3' d='M2 9h1v1h-1z'/><path fill='%23f1807d' d='M4 9h1v1h-1z'/><path fill='%23ee8989' d='M5 9h1v1h-1z'/><path fill='%235b73c4' d='M6 9h1v1h-1z'/><path fill='%23fa2b2d' d='M8 9h1v1h-1z'/><path fill='%23f8292b' d='M9 9h1v1h-1z'/><path fill='%23fdfcfc' d='M10 9h1v1h-1z'/><path fill='%233a3fa3' d='M11 9h1v1h-1z'/><path fill='%23f7fdfd' d='M12 9h1v1h-1z'/><path fill='%23f2999c' d='M13 9h1v1h-1z'/><path fill='%23e65f5b' d='M14 9h1v1h-1z'/><path fill='%238194cc' d='M15 9h1v1h-1z'/><path fill='%23001166' d='M16 9h1v1h-1z'/><path fill='%2392b2d1' d='M1 10h1v1h-1z'/><path fill='%23fcfcfb' d='M2 10h1v1h-1z'/><path fill='%23f58677' d='M3 10h1v1h-1z'/><path fill='%23c3bed9' d='M4 10h1v1h-1z'/><path fill='%23707fbf' d='M5 10h1v1h-1z'/><path fill='%236d7fc1' d='M6 10h1v1h-1z'/><path fill='%23fb5347' d='M8 10h1v1h-1z'/><path fill='%23f95142' d='M9 10h1v1h-1z'/><path fill='%23fcfbfb' d='M10 10h1v1h-1z'/><path fill='%235665b5' d='M11 10h1v1h-1z'/><path fill='%23545daa' d='M12 10h1v1h-1z'/><path fill='%23b6c1d8' d='M13 10h1v1h-1z'/><path fill='%23fbfaf6' d='M14 10h1v1h-1z'/><path fill='%23e95f4c' d='M15 10h1v1h-1z'/><path fill='%236a71a3' d='M16 10h1v1h-1z'/><path fill='%23799dbe' d='M1 11h1v1h-1z'/><path fill='%23934362' d='M2 11h1v1h-1z'/><path fill='%234268a1' d='M3 11h1v1h-1z'/><path fill='%23112c9b' d='M4 11h1v1h-1z'/><path fill='%230c2892' d='M5 11h1v1h-1z'/><path fill='%2308258f' d='M6 11h1v1h-1z'/><path fill='%23cdd4e6' d='M7 11h1v1h-1z'/><path fill='%23841b38' d='M8 11h1v1h-1z'/><path fill='%23831734' d='M9 11h1v1h-1z'/><path fill='%23c9d2e7' d='M10 11h1v1h-1z'/><path fill='%23001772' d='M11 11h1v1h-1z'/><path fill='%2300156f' d='M12 11h1v1h-1z'/><path fill='%2300136c' d='M13 11h1v1h-1z'/><path fill='%2314317d' d='M14 11h1v1h-1z'/><path fill='%238cbbd5' d='M15 11h1v1h-1z'/><path fill='%2344356d' d='M16 11h1v1h-1z'/></svg>") !important; }
#chatFlag[data-lang="FR"] .chatFlagIc, #chatFlag[data-lang="EN"] .chatFlagIc { display: none; }
#chatFlag .chatFlagIc { position: absolute; left: 5px; top: 7px; } #chatFlag .chatFlagIc .cdFlag { width: 15px; height: 11px; border-radius: 0; box-shadow: none; }
#chatGear { background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' shape-rendering='crispEdges'><path fill='%23fdfdfd' fill-opacity='0.55' d='M6 1h1v1h-1zM6 14h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.85' d='M7 1h1v1h-1zM8 1h1v1h-1zM7 14h1v1h-1zM8 14h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.45' d='M9 1h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.8' d='M6 2h1v1h-1zM6 13h1v1h-1z'/><path fill='%23fdfdfd' d='M7 2h1v1h-1zM8 2h1v1h-1zM7 3h1v1h-1zM8 3h1v1h-1zM3 4h1v1h-1zM4 4h1v1h-1zM5 4h1v1h-1zM6 4h1v1h-1zM7 4h1v1h-1zM8 4h1v1h-1zM9 4h1v1h-1zM10 4h1v1h-1zM11 4h1v1h-1zM12 4h1v1h-1zM2 5h1v1h-1zM3 5h1v1h-1zM4 5h1v1h-1zM5 5h1v1h-1zM10 5h1v1h-1zM11 5h1v1h-1zM12 5h1v1h-1zM13 5h1v1h-1zM3 6h1v1h-1zM4 6h1v1h-1zM11 6h1v1h-1zM12 6h1v1h-1zM4 7h1v1h-1zM11 7h1v1h-1zM4 8h1v1h-1zM11 8h1v1h-1zM3 9h1v1h-1zM4 9h1v1h-1zM11 9h1v1h-1zM12 9h1v1h-1zM2 10h1v1h-1zM3 10h1v1h-1zM4 10h1v1h-1zM5 10h1v1h-1zM10 10h1v1h-1zM11 10h1v1h-1zM12 10h1v1h-1zM13 10h1v1h-1zM3 11h1v1h-1zM4 11h1v1h-1zM5 11h1v1h-1zM6 11h1v1h-1zM7 11h1v1h-1zM8 11h1v1h-1zM9 11h1v1h-1zM10 11h1v1h-1zM11 11h1v1h-1zM12 11h1v1h-1zM7 12h1v1h-1zM8 12h1v1h-1zM7 13h1v1h-1zM8 13h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.75' d='M9 2h1v1h-1zM6 5h1v1h-1zM9 5h1v1h-1zM2 6h1v1h-1zM5 6h1v1h-1zM10 6h1v1h-1zM13 6h1v1h-1zM2 9h1v1h-1zM5 9h1v1h-1zM10 9h1v1h-1zM13 9h1v1h-1zM6 10h1v1h-1zM9 10h1v1h-1zM9 13h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.1' d='M2 3h1v1h-1zM13 3h1v1h-1zM1 4h1v1h-1zM14 4h1v1h-1zM2 7h1v1h-1zM2 8h1v1h-1zM1 11h1v1h-1zM14 11h1v1h-1zM2 12h1v1h-1zM13 12h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.35' d='M3 3h1v1h-1zM12 3h1v1h-1zM7 5h1v1h-1zM8 5h1v1h-1zM1 6h1v1h-1zM14 6h1v1h-1zM5 7h1v1h-1zM10 7h1v1h-1zM5 8h1v1h-1zM10 8h1v1h-1zM1 9h1v1h-1zM14 9h1v1h-1zM7 10h1v1h-1zM8 10h1v1h-1zM3 12h1v1h-1zM12 12h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.15' d='M4 3h1v1h-1zM11 3h1v1h-1zM4 12h1v1h-1zM11 12h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.4' d='M5 3h1v1h-1zM10 3h1v1h-1zM5 12h1v1h-1zM10 12h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.95' d='M6 3h1v1h-1zM9 3h1v1h-1zM3 7h1v1h-1zM3 8h1v1h-1zM6 12h1v1h-1zM9 12h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.65' d='M2 4h1v1h-1zM13 4h1v1h-1zM2 11h1v1h-1zM13 11h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.6' d='M1 5h1v1h-1zM14 5h1v1h-1zM1 10h1v1h-1zM14 10h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.9' d='M12 7h1v1h-1zM12 8h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.5' d='M9 14h1v1h-1z'/></svg>") !important; background-position: 5px 4px !important; }
#chatSound { background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='15' shape-rendering='crispEdges'><path fill='%23fdfdfd' fill-opacity='0.3' d='M12 0h1v1h-1zM5 3h1v1h-1zM0 7h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.2' d='M11 1h1v1h-1zM11 2h1v1h-1zM0 6h1v1h-1zM12 10h1v1h-1zM5 11h1v1h-1zM11 12h1v1h-1zM13 13h1v1h-1z'/><path fill='%23fdfdfd' d='M12 1h1v1h-1zM13 3h1v1h-1zM5 4h1v1h-1zM6 4h1v1h-1zM11 4h1v1h-1zM4 5h1v1h-1zM5 5h1v1h-1zM6 5h1v1h-1zM14 5h1v1h-1zM1 6h1v1h-1zM2 6h1v1h-1zM3 6h1v1h-1zM4 6h1v1h-1zM5 6h1v1h-1zM6 6h1v1h-1zM9 6h1v1h-1zM14 6h1v1h-1zM1 7h1v1h-1zM2 7h1v1h-1zM3 7h1v1h-1zM4 7h1v1h-1zM5 7h1v1h-1zM6 7h1v1h-1zM9 7h1v1h-1zM14 7h1v1h-1zM4 8h1v1h-1zM5 8h1v1h-1zM6 8h1v1h-1zM14 8h1v1h-1zM5 9h1v1h-1zM6 9h1v1h-1zM11 9h1v1h-1zM10 10h1v1h-1zM13 10h1v1h-1zM12 12h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.4' d='M13 1h1v1h-1zM8 7h1v1h-1zM13 7h1v1h-1zM2 9h1v1h-1zM12 9h1v1h-1zM4 10h1v1h-1zM6 11h1v1h-1zM11 11h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.5' d='M10 2h1v1h-1zM6 3h1v1h-1zM12 3h1v1h-1zM2 5h1v1h-1zM12 5h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.9' d='M12 2h1v1h-1zM13 4h1v1h-1zM14 4h1v1h-1zM3 5h1v1h-1zM8 5h1v1h-1zM9 5h1v1h-1zM11 6h1v1h-1zM11 7h1v1h-1zM11 10h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.95' d='M13 2h1v1h-1zM10 3h1v1h-1zM11 5h1v1h-1zM3 8h1v1h-1zM9 8h1v1h-1zM11 8h1v1h-1zM14 9h1v1h-1zM13 11h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.65' d='M11 3h1v1h-1zM8 4h1v1h-1zM13 5h1v1h-1zM12 6h1v1h-1zM12 8h1v1h-1zM3 9h1v1h-1zM9 9h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.55' d='M14 3h1v1h-1zM4 4h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.25' d='M9 4h1v1h-1zM12 4h1v1h-1zM10 5h1v1h-1zM9 10h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.8' d='M10 4h1v1h-1zM5 10h1v1h-1zM12 13h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.45' d='M1 5h1v1h-1zM13 6h1v1h-1zM13 8h1v1h-1zM10 9h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.7' d='M8 6h1v1h-1zM12 7h1v1h-1zM8 8h1v1h-1zM8 9h1v1h-1zM13 9h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.15' d='M0 8h1v1h-1zM11 13h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.85' d='M1 8h1v1h-1zM2 8h1v1h-1zM4 9h1v1h-1zM6 10h1v1h-1zM10 11h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.35' d='M1 9h1v1h-1zM8 10h1v1h-1zM14 11h1v1h-1zM10 12h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.75' d='M14 10h1v1h-1zM12 11h1v1h-1zM13 12h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.1' d='M9 11h1v1h-1zM12 14h1v1h-1z'/></svg>") !important; background-position: 5px 5px !important; }
#chatLock { background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='13' height='11' shape-rendering='crispEdges'><path fill='%23fdfdfd' fill-opacity='0.65' d='M2 1h1v1h-1zM5 2h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.55' d='M3 1h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.7' d='M4 1h1v1h-1zM6 2h1v1h-1zM6 3h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.6' d='M5 1h1v1h-1zM1 2h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.5' d='M2 2h1v1h-1zM3 2h1v1h-1zM4 2h1v1h-1zM1 3h1v1h-1zM5 3h1v1h-1zM5 4h1v1h-1zM6 4h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.45' d='M5 5h1v1h-1zM6 5h1v1h-1zM7 5h1v1h-1zM8 5h1v1h-1zM9 5h1v1h-1zM10 5h1v1h-1zM4 6h1v1h-1zM11 6h1v1h-1z'/><path fill='%23fdfdfd' d='M5 6h1v1h-1zM6 6h1v1h-1zM7 6h1v1h-1zM8 6h1v1h-1zM9 6h1v1h-1zM10 6h1v1h-1zM5 7h1v1h-1zM10 7h1v1h-1zM5 8h1v1h-1zM10 8h1v1h-1zM5 9h1v1h-1zM6 9h1v1h-1zM7 9h1v1h-1zM8 9h1v1h-1zM9 9h1v1h-1zM10 9h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.35' d='M4 7h1v1h-1zM11 7h1v1h-1zM4 8h1v1h-1zM11 8h1v1h-1zM4 9h1v1h-1zM11 9h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.85' d='M6 7h1v1h-1zM7 7h1v1h-1zM8 7h1v1h-1zM9 7h1v1h-1zM6 8h1v1h-1zM7 8h1v1h-1zM8 8h1v1h-1zM9 8h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.1' d='M4 10h1v1h-1zM5 10h1v1h-1zM6 10h1v1h-1zM7 10h1v1h-1zM8 10h1v1h-1zM9 10h1v1h-1zM10 10h1v1h-1zM11 10h1v1h-1z'/></svg>") !important; background-position: 7px 7px !important; }
#chat.locked #chatLock { background-image: none !important; } #chat.locked #chatLock > svg { display: block; width: 14px; height: 14px; margin: 5px; color: #fdfdfd; }
#chatFold { width: 20px !important; background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='12' shape-rendering='crispEdges'><path fill='%23fdfdfd' fill-opacity='0.1' d='M3 0h1v1h-1zM6 0h1v1h-1zM0 6h1v1h-1zM9 6h1v1h-1zM0 8h1v1h-1zM9 8h1v1h-1zM1 9h1v1h-1zM8 9h1v1h-1zM2 10h1v1h-1zM7 10h1v1h-1zM3 11h1v1h-1zM6 11h1v1h-1z'/><path fill='%23fdfdfd' fill-opacity='0.15' d='M4 0h1v1h-1zM5 0h1v1h-1zM3 1h1v1h-1zM6 1h1v1h-1zM3 2h1v1h-1zM6 2h1v1h-1zM3 3h1v1h-1zM6 3h1v1h-1zM3 4h1v1h-1zM6 4h1v1h-1zM3 5h1v1h-1zM6 5h1v1h-1zM1 6h1v1h-1zM2 6h1v1h-1zM3 6h1v1h-1zM6 6h1v1h-1zM7 6h1v1h-1zM8 6h1v1h-1zM0 7h1v1h-1zM9 7h1v1h-1zM1 8h1v1h-1zM8 8h1v1h-1zM2 9h1v1h-1zM7 9h1v1h-1zM3 10h1v1h-1zM6 10h1v1h-1zM4 11h1v1h-1zM5 11h1v1h-1z'/><path fill='%23fdfdfd' d='M4 1h1v1h-1zM5 1h1v1h-1zM4 2h1v1h-1zM5 2h1v1h-1zM4 3h1v1h-1zM5 3h1v1h-1zM4 4h1v1h-1zM5 4h1v1h-1zM4 5h1v1h-1zM5 5h1v1h-1zM4 6h1v1h-1zM5 6h1v1h-1zM1 7h1v1h-1zM2 7h1v1h-1zM3 7h1v1h-1zM4 7h1v1h-1zM5 7h1v1h-1zM6 7h1v1h-1zM7 7h1v1h-1zM8 7h1v1h-1zM2 8h1v1h-1zM3 8h1v1h-1zM4 8h1v1h-1zM5 8h1v1h-1zM6 8h1v1h-1zM7 8h1v1h-1zM3 9h1v1h-1zM4 9h1v1h-1zM5 9h1v1h-1zM6 9h1v1h-1zM4 10h1v1h-1zM5 10h1v1h-1z'/></svg>") !important; background-position: 4px 7px !important; }
#chat #chatLog { flex: 1; min-height: 0; padding: 0 0 0 4px; font: 400 11.75px/18px "MmoName", var(--mmoFont); overflow-y: auto; }
#chat #chatLog::-webkit-scrollbar { width: 9px; }
#chat #chatLog::-webkit-scrollbar-track { background: #393b48; background-clip: padding-box; border-right: 4px solid transparent; border-radius: 3px; }
#chat #chatLog::-webkit-scrollbar-thumb { background: #9a9a9b; background-clip: padding-box; border-right: 4px solid transparent; border-radius: 3px; }
#chat .chatRow { flex: none; height: 39px; padding: 3px 4px 6px 9px; gap: 5px; align-items: center; box-sizing: border-box; }
#chat .chatRow .chan, #chat .chatRow button { height: 30px; box-sizing: border-box; padding: 0 7px; font: 400 11.75px "MmoName", var(--mmoFont); color: #fdfdfd; border-radius: 6px; }
#chat .chatRow .chan { height: 30px; min-width: 56px; padding: 0 7px 0 6px; justify-content: flex-start; background: #2f2f37; }
#chat .chatRow #chatLink { width: 37px; padding: 0 0 0 6px; text-align: left; background: #262833; } #chat .chatRow #chatSend { width: 60px; padding: 0 0 0 6px; text-align: left; background: #30323c; }
/* lettres affinées comme le rendu FreeType de PokeMMO : bords des lettres seulement (filtres #thin* de index.html, réglés sur le fond de chaque élément) */
#chat .chatTabs > button, #chat #chatLog { filter: url(#thinA); } #chat .chatTabs > button.on { filter: url(#thinTab); }
#chat .chatRow .chan { filter: url(#thinChan); } #chat .chatRow #chatLink { filter: url(#thinLink); } #chat .chatRow #chatSend { filter: url(#thinSend); } #chat .chatRow input { filter: url(#thinIn); }
#chat .chatRow .chan:hover { filter: url(#thinChan) brightness(1.2); } #chat .chatRow #chatLink:hover { filter: url(#thinLink) brightness(1.2); } #chat .chatRow #chatSend:hover { filter: url(#thinSend) brightness(1.2); }
#chat .chatRow input { height: 30px; box-sizing: border-box; padding: 0 8px; font: 400 11.75px "MmoName", var(--mmoFont); color: #fdfdfd; background: #10121b; border: 1px solid #252731; border-radius: 6px; }
#chat .chatRow input::placeholder { color: transparent; }
#chatLog .chPre, #chatLog b, #chatLog .mp b { color: #fdfdfd; } #chatLog .sys, #chatLog .normal, #chatLog .global { color: #a9cdfd; }
/* au bout de 60 s sans la souris ni la saisie : toute la fenêtre devient transparente, seuls les messages restent */
#chat.idle { background: transparent; border-color: transparent; }
#chat.idle .chatTabs, #chat.idle .chatRow, #chat.idle #chatGrip, #chat.idle .chatEdge { opacity: 0; }
#chat .chatTabs, #chat .chatRow { transition: opacity .4s; }
#chat.idle #chatLog::-webkit-scrollbar-track, #chat.idle #chatLog::-webkit-scrollbar-thumb { background: transparent; }

/* police du chat de PokeMMO (fonts.xml : chatfont = Noto Sans CJK Medium, 12 px) : lettres latines seulement, extraites avec fontTools.
   Noto Sans CJK, Copyright 2014, 2015 Adobe Systems Incorporated, sous SIL Open Font License 1.1 (fonts/OFL-NotoSansCJK.txt) */
@font-face { font-family: "MmoChat"; src: url(data:font/otf;base64,T1RUTwAPAIAAAwBwQkFTRULjT+4AANA0AAAA3kNGRiA7F2MBAAABBAAAukFHUE9TNpuXVgAA0RQAACFYR1NVQqff5FkAAPJsAAAZbE9TLzJiuX41AADFhAAAAGBWT1JH3DH2EwABC9gAAAJkY21hcBqXG5oAAM8QAAABBGhlYWQJ32EaAAC7SAAAADZoaGVhDAsMLgAAxWAAAAAkaG10ePjK9sUAALuAAAAJ4G1heHACf1AAAAAA/AAAAAZuYW1lR140NAAAxeQAAAkscG9zdP+GADIAANAUAAAAIHZoZWEJeBmOAAEYMAAAACR2bXR4v/uFAwABDjwAAAn0AABQAAJ/AAABAAQCAAEBARVOb3RvU2Fuc0NKS2pwLU1lZGl1bQABAQFM+Bv4HIsMHvgdAfgeAvgfA/gXBPsqDAP+g/6rHAtvHAcPBYyWHQCNg8kOHhoATwwfHQAA//8MIhwNZg8cDeUMJR0AAKDPDCQcDmURAA8CAAEABgAOAHkAkACgAL8A5AEBAR0BOAFWAXcBmAG8AeNBZG9iZUlkZW50aXR5Q29weXJpZ2h0IDIwMTQsIDIwMTUgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQgKGh0dHA6Ly93d3cuYWRvYmUuY29tLykuIE5vdG8gaXMgYSB0cmFkZW1hcmsgb2YgR29vZ2xlIEluYy5Ob3RvIFNhbnMgQ0pLIEpQIE1lZGl1bU5vdG8gU2FucyBDSksgSlBOb3RvU2Fuc0NKS2pwLU1lZGl1bS1BbHBoYWJldGljTm90b1NhbnNDSktqcC1NZWRpdW0tQWxwaGFiZXRpY0RpZ2l0c05vdG9TYW5zQ0pLanAtTWVkaXVtLURpbmdiYXRzTm90b1NhbnNDSktqcC1NZWRpdW0tR2VuZXJpY05vdG9TYW5zQ0pLanAtTWVkaXVtLUhXaWR0aE5vdG9TYW5zQ0pLanAtTWVkaXVtLUhXaWR0aENKS05vdG9TYW5zQ0pLanAtTWVkaXVtLUhXaWR0aERpZ2l0c05vdG9TYW5zQ0pLanAtTWVkaXVtLVByb3BvcnRpb25hbE5vdG9TYW5zQ0pLanAtTWVkaXVtLVByb3BvcnRpb25hbENKS05vdG9TYW5zQ0pLanAtTWVkaXVtLVByb3BvcnRpb25hbERpZ2l0cwDWAgABAAcADgA5AD4A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A+gArwLyADUC3QBdAt0AXQLdAF0C3QBdAin//QKcAGECmwBXAj8ANwI/ADcCPwA3Aj8ANwI/ADcCPwA3A3MAPgIFADACNQAwAjUAMAI1ADACNQAwAR//3gEfAE4BH//YAR//4AJqADgCcABXAmYAMAJmADACZgAwAmYAMAJmADAD6ACMAmYAMAJsAFACbABQAmwAUAJsAFACIAANAnYAVwIgAA0CbgAAAj8ANwJuAAACPwA3AtUAIwJ2ADICWABhAjUAMAJYAGECNQAwATX/zQEf/8cBNf/+AR//9gLeAGECcABXAt4AYQJwAFcC8gA5AmYAMALyADkCZgAwA8EAOQOpADAC3QBdAmwAUALdAF0CbABQAt0AXQJsAFAD6AF3AhwALwOEAC8D6ABJA+gBkgEqAD8BKgBJASoASQIGAD8CBgBJAgYASQPoAQED6AEBAWQALQPoALID6ABfA+gBrAPoACABKgBcAgYAXAE4ADMBOAA8AoEAXwOpACwDFQAsAxUAXwI6ABkC3AADA+gANwPoACMD6AEJA+gAKAPoAQkGlwAvCasALwPoAAAD6AAoA+gAHgPoACAD6AA1A+gAGgPoAC0D6ABYA+gAJgPoACgD6AAPA+gAIwPoACYD6AA9A+gAKAPoACgD6AAoA+gAPgPoAD0D6AA6A+gAHgPoAEAD6AA7A+gALgPoACUD6AAlA+gAGQPoAD0D6AA6A+gAHgPoAEAD6AA1A+gAQAPoAC4D6AAlA+gAGQPoAEQD6AA6A+gAKQPoADUD6ABAA+gAKQPoADUD6AByA+gAQAPoACkD6AA1A+gAcgPoAEAD6AAoA+gAKAPoAD0D6AAnA+gAJQPoABkD6ABAA+gAKwPoACsD6AA9A+gAOgPoAB4D6AA9A+gAOgPoAB4D6ABAA+gALgPoAD0D6AA6A+gAHgPoAEAD6AAuA+gAMQPoAEUD6AA1A+gANQPoABMD6AAtA+gAKAPoACUD6AA6A+gANQPoAEAD6AA7A+gAOwPoAEAD6AAyA+gAMgPoAB8D6AAyA+gAHgPoAB4D6AAeA+gAPQPoAD0D6AAaA+gAPQPoACoD6AAoA+gABQPoABQD6AAJA+gAMgKlAB8CjQAfAoMAHwPEAB8DzwAfA+gCiwPoAoAD6AJnA+gCeQPoAdwD6AGsA+gBrAPoAd4D6AAAA+gAFgPoABYD6AAZA+gAGAPoARMD6AAZA+gBMwPoACAD6AAgA+gAIAPoAZkD6AE6A+gAoQPoANsD6ABBA+gAuQPoAbQD6AKpA+gALQPoAJgD6ACMA+gAkwPoAIwD6ACmA+gAIAPoAN0D6ADsA+gA3wPoANID6ADZA+gA1wPoAOkD6ADsA+gA5APoAOcD6AGgA+gBhwPoAGcD6ACMA+gAcgPoAPwD6ABFA+gAlQPoAOgD6ADIA+gA1wPoAQ8D6AEgA+gAqwPoAMED6ADuA+gA5gPoAOgD6AElA+gAjgPoAMcD6ACMA+gA8wPoAIsD6ADyA+gAzgPoALgD6ADEA+gApQPoABUD6AC5A+gAuwPoANUD6ALIA+gAIAPoACAD6AFaA+gAAAPoAUgD6AD2A+gA8wPoAPcD6ADOA+gA4QPoAQ8D6ADhA+gA+gPoAQ4D6ADbA+gBEQPoAPYD6ABCA+gA+QPoANID6ADzA+gAzwPoATwD6ADsA+gA6APoAPQD6ADVA+gAPwPoAOID6ADUA+gA/wPoArcD6AHeA+gAIAPoAi4D6ACuARgAAAFYAF8CCABZASsAWQFkAFkBZAAuASsANQFmADABKwBIAYgADAErAEgBKwA1Ae0ALAFkAGgBZAAoAWQAJgFkACgCPAAmASsASAErAD8BKwBKASsASgIIAD8CCABKAggASgKCAF8DrAAsAxcALAMXAF8H0ABJC7gASQPoAYcD6AGaBGUAbgH0AAAB9ACsAfQAUQH0ABQB9AAxAfQACQH0ABQB9AC+AfQAggH0AFUB9ABCAfQAGgH0AJYB9ABnAfQArAH0AB8B9AAvAfQAOQH0ACUB9AAZAfQAHAH0AB8B9AAxAfQAMwH0ACsB9AAvAfQArAH0AJYB9AAlAfQAGgH0AB0B9ABHAfQAGAH0AA8B9ABFAfQALQH0ADYB9ABOAfQAWgH0ACUB9AA1AfQAPgH0ADAB9AA7AfQAWAH0AC4B9AA5AfQAIQH0AD0B9AAhAfQAOwH0ACgB9AAZAfQANgH0ABMB9AAFAfQAGgH0ABIB9AAsAfQAqgH0AB8B9ABWAfQAMQH0ADIB9AB2AfQAMQH0AD0B9AA1AfQAKAH0AC0B9ABEAfQAKgH0ADoB9ABAAfQAIgH0AEAB9AAyAfQAHgH0ADoB9AAmAfQAPQH0ACYB9ABjAfQAKgH0ACgB9AAtAfQAGAH0//4B9AAcAfQAGgH0ADoB9ABYAfQA0gH0AFYB9AAOAfQAGAH0AKwB9ABRAfQAvgH0AIIB9ABUAfQAmAH0AGcB9ACrAfQAHwH0AK0B9ACZAfQARwH0AKoB9ABWAfQAWAH0AFYB9AAOA+gDIwAqAmgAIALHAD8CLAAXAd4B3gKOAK4BWAAAABUAAQAABIj+wAAAC7j8Ef9EC28AAQAAAAAAAAAAAAAAAAAAAnEAAwPTAfQABQAAAooCWAAAAEsCigJYAAABXgAyAUUAAAILBgAAAAAAAAAAAAADAAAAAAAAAAAAAAAAR09PRwAAACAhkwNw/4gAAASIAUAAAAABAAAAAAIfAt0AAAAgAAYAAAARANIAAwABBAkAAACUAAAAAwABBAkAAQAuAJQAAwABBAkAAgAOAMIAAwABBAkAAwBKANAAAwABBAkABAAuAJQAAwABBAkABQB0ARoAAwABBAkABgAoAY4AAwABBAkABwBEAbYAAwABBAkACAA0AfoAAwABBAkACQG6Ai4AAwABBAkACgEKA+gAAwABBAkACwA+BPIAAwABBAkADAA0BTAAAwABBAkADQKWBWQAAwABBAkADgA0B/oAAwABBAkAEAAgCC4AAwABBAkAEQAMCE4AQwBvAHAAeQByAGkAZwBoAHQAIACpACAAMgAwADEANAAsACAAMgAwADEANQAgAEEAZABvAGIAZQAgAFMAeQBzAHQAZQBtAHMAIABJAG4AYwBvAHIAcABvAHIAYQB0AGUAZAAgACgAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAZABvAGIAZQAuAGMAbwBtAC8AKQAuAE4AbwB0AG8AIABTAGEAbgBzACAAQwBKAEsAIABTAEMAIABNAGUAZABpAHUAbQBSAGUAZwB1AGwAYQByADEALgAwADAANAA7AEcATwBPAEcAOwBOAG8AdABvAFMAYQBuAHMAQwBKAEsAcwBjAC0ATQBlAGQAaQB1AG0AOwBBAEQATwBCAEUAVgBlAHIAcwBpAG8AbgAgADEALgAwADAANAA7AFAAUwAgADEALgAwADAANAA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADgAMgA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADYAMwA0ADAANgBOAG8AdABvAFMAYQBuAHMAQwBKAEsAcwBjAC0ATQBlAGQAaQB1AG0ATgBvAHQAbwAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAEcAbwBvAGcAbABlACAASQBuAGMALgBBAGQAbwBiAGUAIABTAHkAcwB0AGUAbQBzACAASQBuAGMAbwByAHAAbwByAGEAdABlAGQAUgB5AG8AawBvACAATgBJAFMASABJAFoAVQBLAEEAIIl/WFptvFtQACAAKABrAGEAbgBhACAAJgAgAGkAZABlAG8AZwByAGEAcABoAHMAKQA7ACAAUABhAHUAbAAgAEQALgAgAEgAdQBuAHQAIAAoAEwAYQB0AGkAbgAsACAARwByAGUAZQBrACAAJgAgAEMAeQByAGkAbABsAGkAYwApADsAIABXAGUAbgBsAG8AbgBnACAAWgBIAEEATgBHACBfIGWHn5kAIAAoAGIAbwBwAG8AbQBvAGYAbwApADsAIABTAGEAbgBkAG8AbABsACAAQwBvAG0AbQB1AG4AaQBjAGEAdABpAG8AbgAgwLCzzM7ku6SyyM8Ax3TBWAAsACAAUwBvAG8ALQB5AG8AdQBuAGcAIABKAEEATgBHACDHpcIYxgEAIAAmACAASgBvAG8ALQB5AGUAbwBuACAASwBBAE4ARwAgrBXI/MXwACAAKABoAGEAbgBnAHUAbAAgAGUAbABlAG0AZQBuAHQAcwAsACAAbABlAHQAdABlAHIAcwAgACYAIABzAHkAbABsAGEAYgBsAGUAcwApAEQAcgAuACAASwBlAG4AIABMAHUAbgBkAGUAIAAoAHAAcgBvAGoAZQBjAHQAIABhAHIAYwBoAGkAdABlAGMAdAAsACAAZwBsAHkAcABoACAAcwBlAHQAIABkAGUAZgBpAG4AaQB0AGkAbwBuACAAJgAgAG8AdgBlAHIAYQBsAGwAIABwAHIAbwBkAHUAYwB0AGkAbwBuACkAOwAgAE0AYQBzAGEAdABhAGsAYQAgAEgAQQBUAFQATwBSAEkAIGcNkOhrY4y0ACAAKABwAHIAbwBkAHUAYwB0AGkAbwBuACAAJgAgAGkAZABlAG8AZwByAGEAcABoACAAZQBsAGUAbQBlAG4AdABzACkAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGcAbwBvAGcAbABlAC4AYwBvAG0ALwBnAGUAdAAvAG4AbwB0AG8ALwBoAHQAdABwADoALwAvAHcAdwB3AC4AYQBkAG8AYgBlAC4AYwBvAG0ALwB0AHkAcABlAC8AVABoAGkAcwAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAHMAIABsAGkAYwBlAG4AcwBlAGQAIAB1AG4AZABlAHIAIAB0AGgAZQAgAFMASQBMACAATwBwAGUAbgAgAEYAbwBuAHQAIABMAGkAYwBlAG4AcwBlACwAIABWAGUAcgBzAGkAbwBuACAAMQAuADEALgAgAFQAaABpAHMAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAZABpAHMAdAByAGkAYgB1AHQAZQBkACAAbwBuACAAYQBuACAAIgBBAFMAIABJAFMAIgAgAEIAQQBTAEkAUwAsACAAVwBJAFQASABPAFUAVAAgAFcAQQBSAFIAQQBOAFQASQBFAFMAIABPAFIAIABDAE8ATgBEAEkAVABJAE8ATgBTACAATwBGACAAQQBOAFkAIABLAEkATgBEACwAIABlAGkAdABoAGUAcgAgAGUAeABwAHIAZQBzAHMAIABvAHIAIABpAG0AcABsAGkAZQBkAC4AIABTAGUAZQAgAHQAaABlACAAUwBJAEwAIABPAHAAZQBuACAARgBvAG4AdAAgAEwAaQBjAGUAbgBzAGUAIABmAG8AcgAgAHQAaABlACAAcwBwAGUAYwBpAGYAaQBjACAAbABhAG4AZwB1AGEAZwBlACwAIABwAGUAcgBtAGkAcwBzAGkAbwBuAHMAIABhAG4AZAAgAGwAaQBtAGkAdABhAHQAaQBvAG4AcwAgAGcAbwB2AGUAcgBuAGkAbgBnACAAeQBvAHUAcgAgAHUAcwBlACAAbwBmACAAdABoAGkAcwAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUALgBoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8ATwBGAEwATgBvAHQAbwAgAFMAYQBuAHMAIABDAEoASwAgAFMAQwBNAGUAZABpAHUAbQAAAAIAAAADAAAAFAADAAEAAAAUAAQA8AAAADAAIAAEABAAfgCgAQMBEwEbASsBRAFIAU8BUwFtIBYgGiAeICIgJyAwIDMgNSA6IKwhIiGT//8AAAAgAKAAoQEQ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AFMAsAC1AGcAtwDDAG0AxQDIAHoAzgDOAH4A0ADcAH8A3gDfAIwA4gDnAI4A8QD2AJQBZgFmAJoBaAFoAJsB/gH+AJwAAgB6AAIAAgAxAAMAAwA3AAgACAA3AAkACQAtAA0ADQAvAA4ADgAwAA8ADwAvABsAHAAuACAAIAA0ACIAIgAGACMAIwAHACQAJAAJACUAJQAYACYAJgALACcAJwANACgAKAAQACsAKwARACwALAATAC0ALQAVADAAMAAYADEAMQAZADIAMgAYADMAMwAbADQANAAdADUANQAgADYANgAiADcANwAkADgAOAAmADkAOQAoADoAOgAqADsAOwAsADwAPAAtAD0APQABAEIAQgAFAEMAQwAXAEQARAAIAEYARgAKAEcARwAMAEgASAAPAEkASQAWAEwATAASAE0ATQAUAE4ATwAWAFAAUQAXAFIAUgAhAFMAUwAaAFQAVAAcAFUAVQAfAFYAVgAhAFcAVwAjAFgAWAAlAFkAWQAnAFoAWgApAFsAWwArAFwAXAAtAGAAYAACAGoAagAyAGwAbAAwAHYAdgADAHoAegAzAH4AfgAEAH8AhAAGAIUAhQALAIYAhgAJAIcAigALAI8AjwAYAJEAlQAYAJcAlwAYAJgAmwAiAJwAnAAqAJ0AnQAeAJ4AngAOAJ8ApAAFAKUApQAKAKYApgAIAKcAqgAKALAAsAAWALEAtQAXALcAtwAXALgAuwAhALwAvAApAL0AvQAXAL4AvgApAL8AvwAGAMAAwAAFAMEAwQAGAMIAwgAFAMMAwwAYAMUAxQALAMYAxgAKAMcAxwALAMgAyAAKAM4AzgAWANAA0AAWANEA0QAYANIA0gAXANMA0wAYANQA1AAXANUA1QALANYA1gAKANcA1wAiANgA2AAhANkA2QAiANoA2gAhANsA2wAiANwA3AAhAN4A3wAwAOIA4gA1AOMA4wA2AOQA5AAvAOUA5QA1AOYA5gA2AOcA5wAvAPEA8QAyAPIA8gAzAPMA8wAxAPQA9AA0APUA9QAxAPYA9gA0AWYBZgAMAWgBaAAUAf4B/gAvAAIAbgACAAIAKAADAAMAHgAIAAgAHgAKAAoAKQALAAsAHAANAA0AIwAOAA4AJAAPAA8AIwAQABAAJgAbABwAJwAgACAAGgAiACIAAgAkACQACAAoACgACAArACsABgAw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AGxrYW5hARBsYXRuAWQBBgAAAQIABUpBTiABcEtPUiAAIlpISCABgFpIUyABgFpIVCABiAAA//8ACgAAAAEAAgADAAQABQAHAAsADQAQAMYABUpBTiAAIktPUiAAPFpISCAAVlpIUyAAcFpIVCAAigAA//8ACgAAAAEAAgADAAQABQAGAAsADAAQAAD//wAKAAAAAQACAAMABAAFAAcACwAMABAAAP//AAoAAAABAAIAAwAEAAUACAALAA4AEAAA//8ACgAAAAEAAgADAAQABQAIAAsADAAQAAD//wAKAAAAAQACAAMABAAFAAkACwAOABAAIgAFSkFOIAA6S09SIACYWkhIIACgWkhTIACgWkhUIACoAAD//wAJAAAAAQACAAMABAAFAAsADAAQAAD//wAKAAAAAQACAAMABAAFAAYACwAPABAAIgAFSkFOIAA8S09SIABEWkhIIABMWkhTIABMWkhUIABUAAD//wAKAAAAAQACAAMABAAFAAoACwAMABAAAP//AAEABgAA//8AAQAHAAD//wABAAgAAP//AAEACQARYWFsdABoY2NtcABwZGxpZwB2ZndpZAB8aHdpZACCbGlnYQCIbG9jbACObG9jbACWbG9jbACebG9jbACkbG9jbACscHdpZACydmVydAC4dmVydADCdmVydADMdmVydADUdnJ0MgDeAAAAAgAAAAEAAAABAAIAAAABAAQAAAABAAUAAAABAAYAAAABAAMAAAACAAgADAAAAAIACQANAAAAAQAMAAAAAgAKAAwAAAABAAsAAAABAAcAAAADAA4AEAARAAAAAwAOABEAEgAAAAIADgASAAAAAwAOAA8AEgAAAAEADgATACgAegmqCewKMA86EQYSsBR8FHwUjBScFLAVBhXcFjIWRhZUFnYAAQAAAAEACAACACYAEADgAN8CcAJxAnICcwH+AfoB+wD+AP8A7ADiAOMA5QDmAAEAEADfAOAA4gDjAOUA5gDsAP4A/wH6AfsB/gJwAnECcgJzAAMAAAABAAgAAQkGASACRgJMAlICWAJeAmQCagJwAnYCfAKCAogCjgKUApoCoAKmAqwCsgK4Ar4CxALKAtAC1gLcAuIC6ALuAvQC+gMAAwYDDAMSAxgDHgMkAyoDMAM2AzwDQgNIA04DVANaA2ADZgNsA3IDeAN+A4QDigOQA5YDnAOiA6gDrgO0A7oDwAPGA8wD0gPYA94D5APqA/AD9gP8BAIECAQOBBQEGgQgBCYELAQyBDgEPgREBEoEUARWBFwEYgRoBG4EdAR6BIAEhgSMBJIEmASeBKQEqgSwBLYEvATCBMgEzgTUBNoE4ATmBOwE8gT4BP4FBAUKBRAFFgUcBSIFKAUuBTQFOgVABUYFTAVSBVgFXgVkBWoFcAV2BXwFggWIBY4FlAWaBaAFpgWsBbIFuAW+BcQFygXQBdYF3AXiBegF7gX0BfoGAAYGBgwGEgYYBh4GJAYqBjAGNgY8BkIGSAZOBlQGWgZgBmYGbAZyBngGfgaEBooGkAaWBpwGogaoBq4GtAa6BsAGxgbMBtIG2AbeBuQG6gbwBvYG/AcCBwgHDgcUBxoHIAcmBywHMgc4Bz4HRAdKB1AHVgdcB2IHaAduB3QHegeAB4YHjAeSB5gHngekB6oHsAe2B7wHwgfIB84H1AfaB+AH5gfsB/IH+Af+CAQICggQCBYIHAgiCCgILgg0CDoIQAhGCEwIUghYCF4IZAhqCHAIdgh8CIIIiAiOCJQImgigCKYIrAiyCLgIvgjECMoI0AjWCNwI4gjoCO4I9Aj6CQAAAgEAAf8AAgF+AgAAAgF/AgEAAgGAAgIAAgGBAgMAAgGCAgQAAgGDAgUAAgGEAgYAAgGFAgcAAgGGAggAAgGHAgkAAgGIAgoAAgGJAgsAAgGKAgwAAgGLAg0AAgGMAg4AAgGNAg8AAgGOAhAAAgGPAhEAAgGQAhIAAgGRAhMAAgGSAhQAAgGTAhUAAgGUAhYAAgGVAhcAAgGWAhgAAgGXAhkAAgGYAhoAAgGZAhsAAgGaAhwAAgGbAh0AAgGcAh4AAgGdAh8AAgGeAiAAAgGfAiEAAgGgAiIAAgGhAiMAAgGiAiQAAgGjAiUAAgGkAiYAAgGlAicAAgGmAigAAgGnAikAAgGoAioAAgGpAisAAgGqAiwAAgGrAi0AAgGsAi4AAgGtAi8AAgGuAjAAAgGvAjEAAgGwAjIAAgGxAjMAAgGyAjQAAgGzAjUAAgG0AjYAAgG1AjcAAgG2AjgAAgG3AjkAAgG4AjoAAgG5AjsAAgG6AjwAAgG7Aj0AAgG8Aj4AAgG9Aj8AAgG+AkAAAgG/AkEAAgHAAkIAAgHBAkMAAgHCAkQAAgHDAkUAAgHEAkYAAgHFAkcAAgHGAkgAAgHHAkkAAgHIAkoAAgHJAksAAgHKAkwAAgHLAk0AAgHMAk4AAgHNAk8AAgHOAlAAAgHPAlEAAgHQAlIAAgHRAlMAAgHSAlQAAgHTAlUAAgHUAlYAAgHVAlcAAgHWAlgAAgHXAlkAAgHYAloAAgHZAlsAAgHaAlwAAgHbAl0AAgHcAl4AAgH/AAEAAgIAAAIAAgIBAAMAAgICAAQAAgIDAAUAAgIEAAYAAgIFAAcAAgIGAAgAAgIHAAkAAgIIAAoAAgIJAAsAAgIKAAwAAgILAA0AAgIMAA4AAgINAA8AAgIOABAAAgIPABEAAgIQABIAAgIRABMAAgISABQAAgITABUAAgIUABYAAgIVABcAAgIWABgAAgIXABkAAgIYABoAAgIZABsAAgIaABwAAgIbAB0AAgIcAB4AAgIdAB8AAgIeACAAAgIfACEAAgIgACIAAgIhACMAAgIiACQAAgIjACUAAgIkACYAAgIlACcAAgImACgAAgInACkAAgIoACoAAgIpACsAAgIqACwAAgIrAC0AAgIsAC4AAgItAC8AAgIuADAAAgIvADEAAgIwADIAAgIxADMAAgIyADQAAgIzADUAAgI0ADYAAgI1ADcAAgI2ADgAAgI3ADkAAgI4ADoAAgI5ADsAAgI6ADwAAgI7AD0AAgI8AD4AAgI9AD8AAgI+AEAAAgI/AEEAAgJAAEIAAgJBAEMAAgJCAEQAAgJDAEUAAgJEAEYAAgJFAEcAAgJGAEgAAgJHAEkAAgJIAEoAAgJJAEsAAgJKAEwAAgJLAE0AAgJMAE4AAgJNAE8AAgJOAFAAAgJPAFEAAgJQAFIAAgJRAFMAAgJSAFQAAgJTAFUAAgJUAFYAAgJVAFcAAgJWAFgAAgJXAFkAAgJYAFoAAgJZAFsAAgJaAFwAAgJbAF0AAgJcAF4AAgJdAF8AAgJeAGQAAgEAAAEAAgF+AAIAAgF/AAMAAgGAAAQAAgGBAAUAAgGCAAYAAgGDAAcAAgGEAAgAAgGFAAkAAgGGAAoAAgGHAAsAAgGIAAwAAgGJAA0AAgGKAA4AAgGLAA8AAgGMABAAAgGNABEAAgGOABIAAgGPABMAAgGQABQAAgGRABUAAgGSABYAAgGTABcAAgGUABgAAgGVABkAAgGWABoAAgGXABsAAgGYABwAAgGZAB0AAgGaAB4AAgGbAB8AAgGcACAAAgGdACEAAgGeACIAAgGfACMAAgGgACQAAgGhACUAAgGiACYAAgGjACcAAgGkACgAAgGlACkAAgGmACoAAgGnACsAAgGoACwAAgGpAC0AAgGqAC4AAgGrAC8AAgGsADAAAgGtADEAAgGuADIAAgGvADMAAgGwADQAAgGxADUAAgGyADYAAgGzADcAAgG0ADgAAgG1ADkAAgG2ADoAAgG3ADsAAgG4ADwAAgG5AD0AAgG6AD4AAgG7AD8AAgG8AEAAAgG9AEEAAgG+AEIAAgG/AEMAAgHAAEQAAgHBAEUAAgHCAEYAAgHDAEcAAgHEAEgAAgHFAEkAAgHGAEoAAgHHAEsAAgHIAEwAAgHJAE0AAgHKAE4AAgHLAE8AAgHMAFAAAgHNAFEAAgHOAFIAAgHPAFMAAgHQAFQAAgHRAFUAAgHSAFYAAgHTAFcAAgHUAFgAAgHVAFkAAgHWAFoAAgHXAFsAAgHYAFwAAgHZAF0AAgHaAF4AAgHbAF8AAgHcAGQAAgAFAAEAXwAAAGQAZABfAQABAABgAX4B3ABhAf8CXgDAAAQAAAABAAgAAQAyAAIACgAeAAIABgAOAP8AAwDfAN8A/gACAN8AAgAGAA4B+wADAOAA4AH6AAIA4AABAAIA3wDgAAQAAAABAAgAAQA2AAEACAAFAAwAFAAcACIAKAFpAAMARwBKAWoAAwBHAE0BZgACAEcBZwACAEoBaAACAE0AAQABAEcABAAAAAEACAABBMIAIwBMAF4AcACEAI4ApgCyANgA8gD8AQgBKgE2AWQBkgGcAagBtAG+AcwB2AIkAmYCegKEApACpAKuAygDTAQEBDYEQAR+BLgAAgAGAAwA8wACAAIA9gACACAAAgAGAAwA9QACAAIA9AACACAAAgAGAA4BZAADABAATgEKAAIANgABAAQBSAACAFIAAgAGABABSwAEABAATABIAUwAAwBQAA8AAQAEAPkAAwAiADkABAAKABIAGgAgASIAAwApAFsBNgADADEAQgEYAAIAIwFOAAIAWgADAAgADgAUAVAAAgAxAQQAAgBIAR8AAgBbAAEABAERAAIANgABAAQBAQADACoANAAEAAoAEAAWABwBFgACACMBUgACACwBUwACAC4BAwACADQAAQAEAQcAAwA1ACUABQAMABQAHAAiACgBIQADACkAWwE1AAMAMQBCARcAAgAjAUEAAgA3AUYAAgA4AAUADAAUABwAIgAoAV4AAwAxAC4BAgADADUAJgFcAAIAKQFfAAIAMwEzAAIAQgABAAQBYQACAFcAAQAEASMAAwApAFsAAQAEAWMAAwAQAE4AAQAEAWIAAgBDAAEABAFHAAQADwBOAA8AAQAEAQsAAwBCAFMACAASABoAIgAqADIAOgBAAEYBGQADAEIATQEqAAMATgADAS4AAwBOABQBKgADAE4AcQEuAAMATgByAUkAAgBEAUoAAgBFAScAAgBOAAcAEAAYACAAKAAwADYAPAEPAAMATgATARAAAwBOABQBDwADAE4AcQEQAAMATgByAU0AAgAjAQkAAgBCAQ4AAgBOAAIABgAOAQUAAwBTAEgBBgACADcAAQAEASQAAgBOAAEABAFlAAMAQgBNAAIABgAOAQgAAwAxAEIBTwACAEIAAQAEAVEAAgBPAA0AHAAmAC4ANgA+AEYATgBWAFwAYgBoAG4AdAEaAAQARABCAE0BIAADACkAWwE0AAMAMQBCASwAAwBOABMBMAADAE4AFAEsAAMATgBxATAAAwBOAHIBFQACACIBQAACADcBRQACADgBHgACAEgBKAACAE4BVAACAFUABAAKABIAGAAeAVcAAwBQAEgBVQACAE4BVgACAE8BWAACAFkAFAAqADQAPgBGAE4AVgBeAGYAbgB2AHwAggCIAI4AlACaAKAApgCsALIBMgAEABAAVAATATIABAAQAFQAcQExAAMAEABUAVoAAwBKAE0BKQADAE4AEwEtAAMATgAUASkAAwBOAHEBLQADAE4AcgFbAAMAUABNASsAAgATAS8AAgAUARQAAgAiAT8AAgA3AUQAAgA4AVkAAgBDAR0AAgBIASYAAgBOATwAAgBUASsAAgBxAS8AAgByAAYADgAUABoAIAAmACwBEwACACIBHAACACcBPgACADcBQwACADgBJQACAE4BOwACAFQAAQAEAQwAAgA3AAcAEAAaACAAJgAsADIAOAFdAAQADwBOAA8BEgACACIBGwACACcBPQACADcBQgACADgBDQACAEQBOgACAFQABAAKABgAJgAyATkABgBCAEUAEABUABMBOQAGAEIARQAQAFQAcQE4AAUAQgBFABAAVAE3AAMAQgBFAAEABAFgAAIAUwACAAoAAgACAAAAIAAgAAEAIgAkAAIAJwAuAAUAMQAxAA0ANAA1AA4ANwA4ABAAQgBKABIATABRABsAUwBUACEAAQAAAAEACAACAZYAyAEAAX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3ADgAnACcQJyAnMB+gH7AOwBAAF+AX8BgAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSAdMB1AHVAdYB1wHYAdkB2gHbAdwAAgAHAAEAXwAAAGQAZABfAN8A3wBgAOIA4wBhAOUA5gBjAP4A/wBlAf4CXgBnAAEAAAABAAgAAgGGAMAB/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgIbAhwCHQIeAh8CIAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjECMgIzAjQCNQI2AjcCOAI5AjoCOwI8Aj0CPgI/AkACQQJCAkMCRAJFAkYCRwJIAkkCSgJLAkwCTQJOAk8CUAJRAlICUwJUAlUCVgJXAlgCWQJaAlsCXAJdAl4B/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgIbAhwCHQIeAh8CIAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjECMgIzAjQCNQI2AjcCOAI5AjoCOwI8Aj0CPgI/AkACQQJCAkMCRAJFAkYCRwJIAkkCSgJLAkwCTQJOAk8CUAJRAlICUwJUAlUCVgJXAlgCWQJaAlsCXAJdAl4AAgAEAAEAXwAAAGQAZABfAQABAABgAX4B3ABhAAEAAAABAAgAAgGWAMgA3wH+AAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBkAP4A/wABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AZADiAOMA5QDmAAIABwDgAOAAAADsAOwAAQEAAQAAAgF+AdwAAwH6AfsAYgH/Al4AZAJwAnMAxAAHAAAAAQAIAAEAAQAAAgoABwAAAAEACAABAAEAAAIYAAEAAAABAAgAAQAGARIAAQABAOwAAQAAAAEACAACACgAEQHfAeAA4AHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wJgAmEAAQARAAMACADfAOIA4wDkAOUA5gDnAPMA9AD1APYA/gD/AgECBgABAAAAAQAIAAIAaAAxAd0B3gHfAeAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8A4AHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wJfAmACYQJiAmMCZAJlAmYCZwJoAmkCagJrAmwCbQJuAm8AAQAxAAEAAgADAAgACQAKAA0ADgAPABAAGwAcACAAPAA+AFwAXgBfAHYA3wDiAOMA5ADlAOYA5wDzAPQA9QD2AP4A/wIAAgECBgIHAggCCwIMAg0CDgIZAhoCHgI6AjwCWgJcAl0AAQAAAAEACAACACgAEQFyAXEBcAF0AXUBawJ6AnwBfAF9AXMBdgJ9AXcCfgJ4AnkAAQARAOAA6wDsAYUBhgGJAYsBmgG4AboBvAHYAdkB2gHbAfoB+wABAAAAAQAIAAEABgDkAAEAAQGXAAEAAAABAAgAAQA2/wgAAQAAAAEACAACAA4ABAFuAWwBbQFvAAEABAF+AZcBmAGcAAEAAAABAAgAAQAGAAQAAgABAnACcwAAAAIAEAAFAOoA4gDjAOUA5gABAAUA7QJwAnECcgJzAAIACgACAfwB/QABAAIBiQGLAAEAAANwAJcA7gNkAPkDZQEEAu8BBQKYAQYDXwEHA2UBCgNfAQwDXwENAqgBDwOiARADogERA18BEgL+ARMDZQEUA2UBFQN1ARYDZQEXA2UBGANlARsC/gEcA2UBHQKYAR4C/wEfA2UBIAN1ASEDZQEiA2UBIwNlASQDfAElAw4BJgMOAScDBwEoA3UBKQOpASoDogErA6kBLAOpAS0DqQEuA6IBLwOpATADqQExAyoBMgNPATMDXwE1A18BNgNlATgDDwE5Aw8BOgKoATsDBwE8AwcBPQL+AT4DZQE/A2UBQAN1AUEDZQFCAv4BQwNlAUQDZQFFA3UBRgNlAUcDCAFIAv4BSQMHAUsDDgFMA2UBTgMBAVADZQFRA4EBUgNlAVMDZQFXAv8BWgN7AVwC/gFdAqcBXgNlAV8DZQFgAwcBYQNlAWMDKgFkAyoBZQL/AYEDYAGDA2QBjQNkAY4DZQGPA2sBkANkAZEDZQGSA14BkwNkAZQDZQGVA2QBlgNkAZ4DZQGfA2UBoANlAaEDZQGiA2UBowNlAaQDZQGlA2UBpgNlAacDXwGoA2UBqQNlAaoDZQGrA2UBrANlAa0DZQGuAwsBrwNlAbADZQGxA2UBsgNfAbMDZQG0A2UBtQNlAbYDZQG3A2UBuwPUAb0D1AG+AwgBvwN9AcADCAHBA30BwgMIAcMDiQHEApIBxQODAcYDiAHHAxAByAODAckDfQHKAw4BywMOAcwDCAHNAp8BzgKfAc8DDgHQAwgB0QNOAdIDAgHTAwgB1AMIAdUDCAHWApUB1wMIAdwDYAJ4BWQCeQdYA+gAAAPoA3AD6AB/A+gAaQPoAJUD6AAoA+gAggPoAIID6ABpA+gAOAPoADgD6ABPA+gA+wPoAtsD6AIrA+gC2wPoAFID6ACCA+gAkAPoAIID6ACCA+gAkAPoAJAD6ACCA+gAkAPoAIQD6ACCA+gBUgPoAVID6AEPA+gBVwPoAQ8D6ABxA+gAkQPoAJAD6ACQA+gAggPoAJAD6ACQA+gAkAPoAIID6ACQA+gAkAPoAJAD6ACQA+gAkAPoAJAD6ACQA+gAggPoAJAD6ACCA+gAkAPoAIID6ACQA+gAkAPoAJAD6ACQA+gAkAPoAJAD6ACQA+gAVAPoAFID6ABUA+gAfwPoA7sD6P/yA+gBPAPoAFMD6AE8A+gAUwPoATwD6ABGA+gBPAPoAFMD6ABbA+gAWwPoAFMD6ABTA+gBPAPoATwD6AE8A+gBPAPoATwD6AE8A+gBPAPoALID6AFKA+gBSgPoAUoD6AFKA+gBSgPoAUoD6ABUA+gAJQPoAFQD6AGlA+gBPAPoAJED6ACWA+gA+APoAKQD6AAlA+gAZQPoAGMD6ACRA+gARgPoAYAD6AHTA+gB0wPoAE0D6ACCA+gAbgPoAEgD6P/3A+j/9wPo//ID6AFKA+gAcAPoAbAD6ANtA+gABAPoAEYD6AGAA+gAggPoAIID6ACCA+gBPAPo/5cD6P+XA+j/wwPo/7sD6P/UA+j/jQPoAJAD6ACCA+j/lwPo/5cD6P/DA+j/1APo/5cD6P+XA+j/wwPo/9QD6ACQA+j/uwPo/5cD6P+XA+j/wwPo/7sD6P/UA+gAsQPoAGoD6P+XA+j/lwPo/8MD6P/UA+j/lwPoAJAD6ABIA+j/8gPo//ID6AAuA+gAPwPoAGMD6AAcA+gBPAPoATwD6P/yA+j/8gPoAC4D6ABjA+j/8gPo//ID6AAuA+gAYwPoADcD6AA/A+j/8gPo//ID6AAuA+gAPwPoAGMD6ACrA+gBLwPo//ID6P/yA+gALgPoAGMD6P/yA+gAUwPoAGMD6P/tA+gAggPo/7sD6AA2A+gAkAPoAFMD6P/tA+gAggPo/7cD6AAkA+j/uwPoAD8D6P/tA+gAggPo/5cD6P/yA+j/twPoACQD6P/tA+gAggPo/7sD6AA2A+gAkAPoATwD6P+7A+gAPwPo/+0D6ACCA+j/uwPoADYD6AHeA+gCLgPoAi4D6AHeA+gAAAPoAGYD6ABfA+gC1APoAGYD6ABfA+gC1APoAHED6ABxA+gBugPoAawD6AGsA+gBrAPoAHQD6ABpA+gAaQPoAYAD6AGAA+gAfwPoAHED6ABxA+gAcQPoAJYD6AB4A+gAgwPoAQkD6AAjA+gBCQPoACgD6AIuA+gCLgPoA3AD6AAoA+gAhgPoACAD6AANA+gAZAPoAH0D6ACCA+gAbgPoAG4D6AB8A+gAbgPoAH0D6ABzA+gAbgPoADgD6AA4A+gAfAPoABwD6ACDA+gAgwPoAHMD6ACDA+gAgwPoAHcD6ABuA+gAbgPoABwD6ACDA+gAZAPo//0D6ACDA+gAcwPoAIMD6AB3A+gAgwPoAG0D6ADaA+gA2gPoANID6ABzA+gAPwPoADgD6AA/A+gAPwPoAD8D6AA4A+gAPwPoAD8D6AAKA+j/5QPoAH0D6ABuA+gAfQPoAHcD6ABuA+j/7wPo/+8D6ABzA+gA0gPoANID6AAcA+gAgwPoAIMD6ABzA+gAgwPoABwD6ACDA+gAgwPoAHMD6ACDA+gA1APoABwD6ADSA+gAbgPo/+4D6AB3A+gAbgPoABMD6ABuA+gAgwPoAGcD6ACDA+gAgwPoAG4D6ABuA+gAbgPo//0D6ABuA+gAbgPoAGED6ABuA+gAHAPoAHMD6ACDA+gAgwPoANID6AB3A+gAbgPoAAoD6AAKA+j//QPoAEYD6ABGA+gARgPoAEYD6ABGA+gAEgPoAGsD6ABrA+gAOgPoAC0D6ABfA+gAsgPoAEkD6AAAA+gCqQPoAC0D6AK3A+gAIAPoAoYD6AArA+gCZwPoACAD6ALIA+gAIAPoAIQD6AAAA+gAfAPo//sD6AB1A+gAdgPoAAAD6AAWA+gAFgPoAHQD6ACPA+gCggPoAc0D6AK2A+gAIAPoAHcD6ACDA+gAfQPoAHYD6ACDA+gAfAPoAHYD6ACDA+gAdgPoAHYD6AC1A+gAtQPoAHMD6AFSA+gAcwPoAHcD6AApA+gAgwPoAIMD6AB3A+gAgwPoAIMD6ACDA+gAdgPoAIMD6ACDA+gAfQPoAIMD6ACDA+gAgwPoAIMD6AB3A+gAgwPoABwD6ACDA+gAdgPoAIMD6AB9A+gAgwPoAIMD6ACDA+gAgwPoAIMD6AAgA+gAIAPoACAD6AAiA+gDvAPoACID6ADUA+gAYAPoANQD6ABgA+gA1APoAGAD6ABeA+gAZgPoAGED6P/pA+gAZgPoAGAD6ADaA+gA2QPoANQD6ABqA+gAagPoANoD6ADUA+gAjgPoANoD6ADgA+gA4APoAOAD6ABtA+gA4APoABgD6AAAA+gAGAPoABUD6ACHA+gDcAPoAH0D6AAAA+gAAAPo//MD6P/zA+gC0QPoAckD6ALRA+gACQPoAIgD6ACIA+gAcAPoABAD6AAQA+gAEAPoABAD6AGcA+gBogPoAAUD6P//A+gCowPoAAUD6P//A+gCowPoAH0D6ABwA+gAcAPoAHAD6AHeA+gB3gPoAVkD6AGRA+gC2wPoA3AD6AB9A+gAZwPoAJQD6AAmA+gAlwPoAIID6ABnA+gANgPoADYD6ABNA+gA+gPoAtoD6AImA+gC2gPoAFAD6ACVA+gAoQPoAJQD6ACVA+gAoQPoAKED6ACVA+gAoQPoAJUD6ACVA+gBUAPoAVAD6AEfA+gBVQPoAR8D6ABvA+gAoQPoAI4D6ACOA+gAggPoAI0D6ACOA+gAjgPoAIID6ACOA+gAjgPoAI4D6ACOA+gAjgPoAI4D6ACOA+gAggPoAI4D6ACCA+gAjgPoAIID6ACOA+gAjQPoAI4D6ACOA+gAjgPoAI4D6ACOA+gAUgPoAFAD6ABSA+gAfQPoA7sD6AA7A+gBPAPoAG4D6AE7A+gAbgPoATwD6ABhA+gBPAPoAG4D6ABWA+gAVgPoAG4D6ABuA+gBPAPoATwD6AE8A+gBPAPoATwD6AE8A+gBOwPoAK8D6AFIA+gBSAPoAUgD6AFIA+gBSAPoAUgD6ABSA+gAIwPoAFID6AGkA+gAoQPoAH4D6AAAA+gAAAPo//QD6P/0A+gC0QPoAccD6ALRA+gACQPoAIgD6ACIA+gAcQPoABAD6AAQA+gAEAPoABAD6AGcA+gAHAPoACED6AAcA+gAIQPoAqwD6AAfA+gCrAPoAB8H0ABJC7gASQPoAGwBpwCMAd4CLgABEAAB9P4MAAALuPwR/U8LbwAAAAEAAAAAAAAAAAAAAAACew==) format("opentype"); }
#chat .chatTabs > button, #chat #chatLog, #chat .chatRow .chan, #chat .chatRow button, #chat .chatRow input { font-family: "MmoChat", "MmoName", var(--mmoFont); font-size: 12px; font-weight: 400; }
#chat #chatLog em, #chat #chatLog b { font-weight: 400; }

/* écran de création : aperçu, flèches et boutons comme Personnaliser (2026-11-13, sa demande) */
#newCharBox .crPreview { display: flex; flex-direction: column; align-items: center; padding: 0; gap: 0; }
#newCharBox .cuNav { display: flex; justify-content: space-between; width: 100%; padding: 0 22px; box-sizing: border-box; }
#newCharBox .crPal .cuNav { width: 420px; padding: 0; }
#newCharBox .cuNav button { width: 30px; height: 22px; padding: 0; border: 0; border-radius: 0; box-shadow: none; background: #fff; cursor: pointer; }
#newCharBox .cuNav button:hover { background: #cfe4ee; }
#newCharBox .cuNav button.cuL { clip-path: polygon(40% 0, 53% 0, 53% 27%, 100% 27%, 100% 73%, 53% 73%, 53% 100%, 40% 100%, 0 50%); }
#newCharBox .cuNav button.cuR { clip-path: polygon(60% 0, 47% 0, 47% 27%, 0 27%, 0 73%, 47% 73%, 47% 100%, 60% 100%, 100% 50%); }
#newCharBox #btnCreateChar, #newCharBox #crPalOk { height: 46px; background: linear-gradient(#54595c, #3f4346); border: 1px solid #1f2326; border-radius: 3px; color: #fff; font: 13px "MmoName", "Segoe UI", sans-serif; box-shadow: none; text-shadow: none; }
#newCharBox #btnCreateChar:hover, #newCharBox #crPalOk:hover { background: linear-gradient(#646a6d, #4d5255); }
/* liste des menus déroulants de Personnaliser et de la création (ddOpen), comme PokeMMO */
.ddPop { position: fixed; z-index: 10000; box-sizing: border-box; overflow-y: auto; padding: 3px 0; background: linear-gradient(#3e4347, #34383b); border: 1px solid #575c60; border-radius: 3px; box-shadow: 0 4px 12px #0009; font: 400 12px "MmoName", "Segoe UI", sans-serif; color: #e8e9ea; }
.ddIt { box-sizing: border-box; min-height: 19px; margin: 3px 4px; padding: 1px 6px; display: grid; place-items: center; text-align: center; line-height: 1.2; border: 1px solid transparent; border-radius: 2px; cursor: pointer; }
.ddIt.on, .ddIt:hover { background: linear-gradient(#50565a, #464b4f); border-color: #747a7e; color: #fff; }
.ddPop::-webkit-scrollbar { width: 5px; } .ddPop::-webkit-scrollbar-thumb { background: #c9ccce; border-radius: 2px; } .ddPop::-webkit-scrollbar-track { background: transparent; }
#newCharBox .crLabel, #newCharBox .crOpt select, #newCharBox .crRow select, #newCharBox .crRow input, #newCharBox #btnCreateChar, #newCharBox #crPalOk { font-weight: 400; } /* PokeMMO : texte normal, pas gras */
/* menus comme PokeMMO (2026-11-13, ses captures) : sombres, brillance bleue sous la souris, bord bleu une fois choisi, gris clair quand ils sont bloqués */
.cuRow select, #newCharBox .crOpt select, #newCharBox .crRow select { color: #fff; border-color: #2a2e31; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='12'%3E%3Cpath fill='%23fff' d='M4 0l4 5H0zM4 12L0 7h8z'/%3E%3C/svg%3E") no-repeat right 8px center, linear-gradient(#43474a, #35383b); }
.cuRow select:focus, #newCharBox .crOpt select:focus, #newCharBox .crRow select:focus { color: #fff; outline: 0; border-color: #5f9bd2; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='12'%3E%3Cpath fill='%23fff' d='M4 0l4 5H0zM4 12L0 7h8z'/%3E%3C/svg%3E") no-repeat right 8px center, linear-gradient(#43474a, #35383b); }
.cuRow select:hover:not(:disabled), #newCharBox .crOpt select:hover:not(:disabled), #newCharBox .crRow select:hover:not(:disabled) { color: #fff; border-color: #5b7d96; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='12'%3E%3Cpath fill='%23fff' d='M4 0l4 5H0zM4 12L0 7h8z'/%3E%3C/svg%3E") no-repeat right 8px center, linear-gradient(#41464a, #3a444c 55%, #355267); border-color: #4d7089; }
.cuRow select:disabled, #newCharBox .crOpt select:disabled, #newCharBox #crOptions select:disabled { opacity: 1; color: #a3a6a8; border-color: #3a3e41; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='12'%3E%3Cpath fill='%23c8cacb' d='M4 0l4 5H0zM4 12L0 7h8z'/%3E%3C/svg%3E") no-repeat right 8px center, linear-gradient(#5f6366, #515558); }
/* flèche normale (pas la main) pour choisir, comme PokeMMO (2026-11-13, sa demande) */
.cuRow select, .ddPop, .ddIt, #newCharBox select, #newCharBox button, #newCharBox .cuSw div, #panel[data-w=custom] button, #panel[data-w=custom] .cuSw div { cursor: default !important; }
/* écrans d'entrée (Entrer, Sélection du serveur, Sélection du personnage, Nouveau personnage) : flèche normale partout, comme PokeMMO ; les champs de texte gardent leur curseur */
.loginbox, .loginbox *:not(input[type=text]):not(input[type=password]):not(input:not([type])):not(textarea) { cursor: default !important; }
/* partout où l'on clique (2026-11-13, sa demande) : flèche normale, pas la main, comme PokeMMO */
button, select, a, summary, label, [data-a], .charcard, .cuSw div, .crSw div, input[type=checkbox], input[type=range] { cursor: default !important; }
/* brillance bleue sous la souris, comme PokeMMO (ses captures : NOUVEAU PERSONNAGE, ENTRER, carte du personnage) */
/* boutons au repos comme PokeMMO (sa capture « NOUVEAU PERSONNAGE ») : gris foncé, texte blanc normal */
.gbtn, #newCharBox #btnCreateChar, #newCharBox #crPalOk { background: linear-gradient(#4b5054, #393d40 55%, #33373a); border: 1px solid #222629; color: #fff; font-family: "MmoName", "Segoe UI", sans-serif; font-weight: 400; }
.gbtn:not(:disabled):hover, #newCharBox #btnCreateChar:hover, #newCharBox #crPalOk:hover { background: linear-gradient(#4a5258, #3e4d58 55%, #3a5b74); border-color: #5f9bd2; } /* tous les boutons des écrans d'entrée et du jeu hors panneaux PokeMMO */
.loginbox select:not(:disabled):hover { border-color: #5f9bd2; box-shadow: inset 0 -12px 14px -8px #3f86c0aa; }
.charcard:not(.empty):hover { border-color: #5f9bd2; }
/* confirmation de Déconnexion / Quitter (askLeave), comme le menu Échap */
#leaveAsk { position: fixed; inset: 0; z-index: 40; display: grid; place-items: center; font: 13px "Segoe UI", sans-serif; color: #e6e9f0; }
#leaveAsk .laBox { width: 340px; box-sizing: border-box; padding: 16px 16px 14px; background: #121622; border: 1px solid #2b3142; border-radius: 10px; box-shadow: 0 14px 40px #000c; }
#leaveAsk .laTop { display: flex; gap: 12px; align-items: flex-start; }
#leaveAsk .laTop b { font-size: 16px; font-weight: 600; line-height: 1.3; color: #fff; }
#leaveAsk .laIc { flex: none; width: 34px; height: 34px; display: grid; place-items: center; background: #21273a; border-radius: 8px; color: #f2c04a; }
#leaveAsk.quit .laIc { color: #f08178; }
#leaveAsk .laIc svg { width: 17px; height: 17px; }
#leaveAsk .laBtns { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }
#leaveAsk button { height: 34px; padding: 0 10px; border: 0; border-radius: 7px; font: 600 14px "Segoe UI", sans-serif; color: #e6e9f0; background: #21273a; cursor: default; }
#leaveAsk button:hover { background: #2b3249; }
#leaveAsk button kbd { margin-left: 6px; padding: 1px 5px; color: #b7bdcb; font: 10px "Segoe UI"; background: #151929; border: 1px solid #3a4158; border-radius: 3px; }
#leaveAsk .laYes { background: #f2c04a; color: #1b1606; }
#leaveAsk .laYes:hover { background: #f7cd62; }
#leaveAsk .laYes kbd { color: #3a2e08; background: #d9a832; border-color: #c49724; }
#leaveAsk.quit .laYes { background: #e2564d; color: #fff; }
#leaveAsk.quit .laYes:hover { background: #ec665d; }
#leaveAsk.quit .laYes kbd { color: #ffe3e0; background: #c4433b; border-color: #b13a33; }
#leaveAsk button:focus { outline: 0; }
/* menus des écrans d'entrée (Identifiant…) : même liste que Personnaliser (ddOpen) */
/* ===== brillance bleue de PokeMMO, relevée pixel par pixel sur sa capture « Réparer Client » (2026-11-13) =====
   bord 1 px #2d3336 en haut, bleuissant jusqu'à #365269 en bas ; trait clair de 1 px dedans (#636c73 en haut, #626c73 → #4b667f sur les côtés, #4c6881 en bas) ;
   fond #525a5f → #425d74. Texte : Noto Sans Medium 12 px (sa largeur mesurée sur la capture) */
:root {
  --pmHoverBg: linear-gradient(#636c73, #636c73) top / 100% 1px no-repeat, linear-gradient(#4c6881, #4c6881) bottom / 100% 1px no-repeat,
    linear-gradient(#626c73, #4b667f) left / 1px 100% no-repeat, linear-gradient(#626c73, #4b667f) right / 1px 100% no-repeat,
    linear-gradient(#525a5f, #4a545c 25%, #44535e 50%, #425667 75%, #425d74);
  --pmHoverBorder: linear-gradient(#2d3336, #2d3437 10%, #2c3a44 55%, #344e65 95%, #365269) 1;
  --pmArrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='12'%3E%3Cpath fill='%23fff' d='M4 0l4 5H0zM4 12L0 7h8z'/%3E%3C/svg%3E") no-repeat right 8px center;
}
.gbtn:not(:disabled):hover, #newCharBox #btnCreateChar:hover, #newCharBox #crPalOk:hover,
#panel[data-w=custom] #cuSet:hover, #panel[data-w=custom] #cuColSet:hover, body.mmo #panel[data-w=custom] #cuSet:hover, body.mmo #panel[data-w=custom] #cuColSet:hover {
  background: var(--pmHoverBg) !important; border: 1px solid transparent !important; border-image: var(--pmHoverBorder) !important; border-radius: 0; box-shadow: none !important; color: #fff; filter: none !important; }
body.mmo #panel[data-w=custom] #cuSet, body.mmo #panel[data-w=custom] #cuColSet { border-width: 1px; padding: 0 6px; border-image: none; }
.cuRow select:hover:not(:disabled), #newCharBox .crOpt select:hover:not(:disabled), #newCharBox .crRow select:hover:not(:disabled), .loginbox select:not(:disabled):hover {
  background: var(--pmArrow), var(--pmHoverBg); border: 1px solid transparent; border-image: var(--pmHoverBorder); border-radius: 0; box-shadow: none; color: #fff; }
/* même police partout sur ces écrans : Noto Sans Medium 12 px, normale */
.gbtn, .loginbox select, .loginbox .crLabel, .cuRow > span, .cuRow select, #newCharBox #btnCreateChar, #newCharBox #crPalOk, #panel[data-w=custom] #cuSet, #panel[data-w=custom] #cuColSet { font: 400 12px "MmoName", "Segoe UI", sans-serif !important; }
/* ===== fenêtre ENTRER de PokeMMO, relevée pixel par pixel sur sa capture (2026-11-13) =====
   fenêtre 316 px, bord #282828 (haut #51595b), fond #3a3f43 ; titre 35 px dégradé #465f6e → #3e515f, trait #485f6f, bord #20292d, Noto Sans Bold 12 px ;
   lignes de 27 px espacées de 9, marges 25 / 19 / 19 / 18 ; libellés 88 px ; textes Noto Sans Medium 12 px blancs */
:root {
  --pmBtnBg: linear-gradient(#656e75, #656e75) top / 100% 1px no-repeat, linear-gradient(#485157, #485157) bottom / 100% 1px no-repeat,
    linear-gradient(#626a72, #626a72) left / 1px 100% no-repeat, linear-gradient(#626a72, #626a72) right / 1px 100% no-repeat,
    linear-gradient(#545b61, #4b5258 35%, #41484d 70%, #3c4348);
  --pmArrowS: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='5' height='8' shape-rendering='crispEdges'%3E%3Cpath fill='%23fff' d='M2 0h1v1h1v1h1v1H0V2h1V1h1zM0 5h5v1H4v1H3v1H2V7H1V6H0z'/%3E%3C/svg%3E") no-repeat right 8px center;
}
.loginbox { background: #3a3f43; border: 1px solid #282828; border-top-color: #51595b; border-radius: 4px 4px 2px 2px; box-shadow: none; }
.loginbox .lbHead { height: 36px; box-sizing: border-box; padding: 6px 13px 0; background: linear-gradient(#485f6f, #485f6f) bottom / 100% 1px no-repeat, linear-gradient(#465f6e, #435b6b 30%, #405565 65%, #3e515f); border-bottom: 1px solid #20292d; border-radius: 3px 3px 0 0; color: #fff; font: 700 12px "PmmoB", "MmoName", "Segoe UI", sans-serif; }
#formBox { width: 316px; box-sizing: border-box; }
#formBox .lbBody { padding: 25px 19px 19px 18px; gap: 9px; color: #fff; font: 400 12px "MmoName", "Segoe UI", sans-serif; }
#formBox .lbBody > label { grid-template-columns: 88px 1fr; }
#formBox .authVol, #formBox #authMsg:empty { display: none; }
#formBox .lbBody input:not([type=checkbox]), #formBox #userSel { height: 27px; box-sizing: border-box; font: 400 12px "MmoName", "Segoe UI", sans-serif !important; }
#formBox .lbBody input:not([type=checkbox]) { padding: 0 3px; background: #3a4044; border: 1px solid #26292a; border-bottom-color: #272c30; border-radius: 2px; color: #fff; }
#formBox .lbBody input::placeholder { color: #a6a6a6; opacity: 1; }
#formBox .lbBody input:disabled { opacity: 1; }
#formBox .lbBody input:focus { border-color: #508ec7; }
.loginbox .gbtn:not(.back), #formBox #userSel { height: 27px; box-sizing: border-box; padding: 0 6px; color: #fff; border: 1px solid; border-color: #2e3437 #2d3337 #282e32; border-radius: 0; box-shadow: 0 0 0 1px #33373a; background: var(--pmBtnBg); font: 400 12px "MmoName", "Segoe UI", sans-serif !important; filter: none; }
#formBox #userSel { -webkit-appearance: none; appearance: none; padding: 0 18px; text-align: center; text-align-last: center; background: var(--pmArrowS), var(--pmBtnBg); }
#formBox #userSel:not(:disabled):hover { background: var(--pmArrowS), var(--pmHoverBg); border: 1px solid transparent; border-image: var(--pmHoverBorder); box-shadow: 0 0 0 1px #33373a; }
#formBox #userSel:focus { outline: 0; }
#formBox .lbRow { gap: 10px; padding: 0 1px; }
#formBox #btnForget { flex: 1; font-size: 12px !important; padding: 0 4px; }
#formBox #btnLogin, #formBox #btnRegister { flex: none; width: 57px; }
/* bouton par défaut (ENTRER, qui a le focus) : la brillance bleue avec un bord bleu, comme sur sa capture */
.loginbox .gbtn:not(.back):focus, #pmAsk .pmDef { outline: 0; background: var(--pmHoverBg) !important; border: 1px solid !important; border-color: #508ec7 #4e8bc4 #5297d6 !important; border-image: none !important; }
/* confirmation façon PokeMMO (« Oublier le Mot de Passe Mémorisé ») */
#pmAsk { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; background: #0007; }
#pmAsk .pmBox { width: 470px; max-width: calc(100vw - 32px); box-sizing: border-box; padding: 12px 15px 14px; background: #3a3f43; border: 1px solid #282828; border-top-color: #51595b; border-radius: 4px; color: #fff; font: 400 12px "MmoName", "Segoe UI", sans-serif; box-shadow: 0 6px 20px #0008; }
#pmAsk .pmT { margin: 2px 0 12px; line-height: 1.35; text-align: center; }
#pmAsk .pmBtns { display: grid; gap: 9px; padding: 0 1px; }
#pmAsk button { height: 27px; box-sizing: border-box; color: #fff; border: 1px solid; border-color: #2e3437 #2d3337 #282e32; border-radius: 0; box-shadow: 0 0 0 1px #33373a; background: var(--pmBtnBg); font: 400 12px "MmoName", "Segoe UI", sans-serif; cursor: default; filter: none; }
#pmAsk button:hover { background: var(--pmHoverBg); border: 1px solid transparent; border-image: var(--pmHoverBorder); }
/* ===== écran d'entrée comme PokeMMO (sa capture plein écran, 2026-11-13) ===== */
.loginbox { top: 50%; }
.rominfo, #auth.has3d .rominfo, #auth.hasSky .rominfo { top: -2px; left: 0; font: 700 12px/18px "PmmoB", "MmoName", "Segoe UI", sans-serif; color: #fff; text-shadow: 0 0 2px #000, 1px 1px 0 #000; }
.rominfo.err { color: #ff6a5c; }
/* Annonces : pas de cadre, titre en gras, lignes de 300 x 26 espacées de 8 */
.news { left: 5px; bottom: 13px; width: 300px; padding: 0; background: none; border-radius: 0; }
.newsHead { padding: 0 4px; margin-bottom: 11px; color: #fff; font: 700 12px/14px "PmmoB", "MmoName", "Segoe UI", sans-serif; text-shadow: 0 0 2px #000; }
.newsItem { box-sizing: border-box; height: 26px; margin: 8px 0 0; padding: 0 4px; display: flex; align-items: center; background: #18191bdb; color: #fff; font: 400 12px "MmoName", "Segoe UI", sans-serif; white-space: nowrap; overflow: hidden; }
.newsHead + .newsItem { margin-top: 0; }
/* boutons de droite : 198 x 24, espacés de 2, à 3 px du bord droit et 2 px du bas */
.sidebtns { right: 3px; bottom: 2px; width: 198px; gap: 2px; }
.sidebtns .gbtn { height: 24px; box-sizing: border-box; padding: 0 6px; color: #fff; border: 1px solid; border-color: #2e3437 #2d3337 #282e32; border-radius: 0; box-shadow: none; background: var(--pmBtnBg); font: 400 12px "MmoName", "Segoe UI", sans-serif !important; filter: none; }
.sidebtns .gbtn:not(:disabled):hover { background: var(--pmHoverBg) !important; border: 1px solid transparent !important; border-image: var(--pmHoverBorder) !important; }
#srvState { height: 24px; box-sizing: border-box; padding: 0 7px; background: #18191bdb; border: 0; border-radius: 0; font: 400 12px "MmoName", "Segoe UI", sans-serif; }
/* ===== suite de l'entrée comme PokeMMO, relevée sur ses captures (2026-11-13) ===== */
/* bouton grisé (« Ouverture... » pendant la connexion, SUPPRIMER sans personnage choisi) : gris clair plat, texte #a8a8a8 */
.loginbox .gbtn:not(.back):disabled { opacity: 1; color: #a8a8a8; border-color: #32373a #32373a #303539; background: linear-gradient(#878f95, #878f95) top / 100% 1px no-repeat, linear-gradient(#6f777b, #6f777b) bottom / 100% 1px no-repeat, linear-gradient(#70767b, #656b6f 12%, #656b6f); }
/* Sélection du Serveur : 351 x 301, tableau à 87 px du bord, colonnes de 55 et 62 px, lignes de 19 px, ENTRER 67 x 27 */
.serverbox { width: 351px; min-height: 0; height: 301px; box-sizing: border-box; }
.serverbox .lbBody { display: block; padding: 24px 0 0 87px; color: #fff; font: 400 12px "MmoName", "Segoe UI", sans-serif; }
.serverbox table { width: auto; border-spacing: 0; text-align: left; font: inherit; }
.serverbox th { padding: 0; font-weight: 400; line-height: 19px; vertical-align: top; }
.serverbox th:nth-child(1) { width: 55px; } .serverbox th:nth-child(2) { width: 62px; }
.serverbox td { padding: 8px 0 0; line-height: 19px; vertical-align: middle; }
.serverbox .srvSt i { display: none; }
.serverbox #srvRows .gbtn { width: 67px; }
#btnSrvRefresh { display: none; }
#srvMaint { margin: 12px 18px 0 -69px; }
/* Sélection du Personnage : 637 x 293, cartes 200 x 121 espacées de 5, boutons 30 px espacés de 7 */
.charbox { width: 637px; box-sizing: border-box; }
.charbox .lbBody { display: grid; gap: 7px; padding: 11px 13px 13px 12px; color: #fff; font: 400 12px "MmoName", "Segoe UI", sans-serif; }
.charbox .charlist { grid-template-columns: repeat(3, 200px); gap: 5px; margin: 0 0 -2px; }
.charbox .charcard { box-sizing: border-box; height: 121px; min-height: 0; padding: 10px 4px 0; background: #3a3f44; border: 1px solid #26292b; border-radius: 0; box-shadow: none; }
.charbox .charcard:not(.empty):hover { border-color: #26292b; }
.charbox .charcard.sel, .charbox .charcard.sel:hover { background: #3a3f44; border-color: #5cb0fd; box-shadow: inset 0 0 0 1px #5cb0fd, inset 0 0 0 2px #3f5c76; }
.charbox .charcard b { margin: 0; font: 400 12px/16px "MmoName", "Segoe UI", sans-serif; color: #fff; }
.charbox .charcard .cc { min-height: 0; }
.charbox .gbtn.wide { height: 30px; margin: 0 1px; width: auto; }
.charbox #charMsg:empty { display: none; }
/* bandeau de chargement : 267 x 58 au milieu, noir à moitié transparent, Noto Sans Medium 14 px */
#pmLoad { position: fixed; left: 50%; top: 50%; z-index: 70; width: 267px; height: 58px; transform: translate(-50%, -50%); display: grid; place-items: center; background: #0000007d; color: #fff; font: 400 14px "MmoName", "Segoe UI", sans-serif; pointer-events: none; }
.serverbox td { padding-top: 5px; }
.serverbox #srvRows .gbtn:not(:disabled) { background: var(--pmHoverBg) !important; border: 1px solid !important; border-color: #508ec7 #4e8bc4 #5297d6 !important; border-image: none !important; } /* ENTRER du serveur : bord bleu comme sa capture */
/* fenêtres posées au pixel près (un demi-pixel les rendait floues) : marges entières au lieu de translate(-50 %) */
#formBox, .serverbox, .charbox { transform: none; margin: -90px 0 0 -158px; }
.serverbox { margin: -150px 0 0 -175px; }
.charbox { margin: -146px 0 0 -318px; }
#formBox, .serverbox, .charbox { left: var(--midX, 50%); top: var(--midY, 50%); }
#pmLoad { left: var(--midX, 50%); top: var(--midY, 50%); transform: none; margin: -29px 0 0 -133px; }
#pmLoad { font: 400 13px "MmoName", "Segoe UI", sans-serif; letter-spacing: .55px; } /* 221 px de large comme sur sa capture */
/* dresseur de la Sélection du Personnage (2026-11-13, sa capture de PokeMMO) : pieds 7 px au-dessus du bas de la carte (ils touchaient le bord), sans ombre portée */
.charbox .ccPose { position: relative; top: -6px; }
.charbox .ccPose img.pose, .charbox .ccPose canvas[data-av] { filter: none; }
/* icône de couleur de Personnaliser et de la création : l'image exacte de sa capture (18 x 18), au lieu du dégradé qui s'affichait en carreaux chez lui (2026-11-13) */
#panel button.cuDot, #newCharBox button.crDot { width: 18px; height: 18px; background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAADOklEQVR42m2UPYhcZRSGn+9n7t9kZtbJ7uxo1kYjKOoatbCLsGYbwcbGYKMWgRBYSGMKIVgIFmm3iGKxQooQiJpOQQ1GsRITtBESDFHjEnfn7szsnXvvzJ3vJ8Wgkmze8sD78MJ5zxE8QKeOHPUrus6ycnTkCIKSrdjyq3BcHjnOfPG1uN9zz+CdlTf8WvIsz6sQfB/og08hKqDloemg4blWOdZ/c2xc+kbsAZ06ctx/WF9F+RwYgOhDvYDaEKICn4wRYQZNCw2PTTzv/QBnPp3BxCzJ2/6T5jEUJfghtCt4qILGGIIcwgKi8QwqeqB6UHfYCI6dh40L3woNsJYcRfkWoGExgoctzFuYM/iwRIQT0MUspU/AK/CbqNiz9hpsXAB9cvVdfzB4mqlz1NoJPGJhyUHXQxtEYqE2BUZge2ACMB7sGEPK4wfh5IlXvD4UvkQqFKESNNoRyYJCdsEvgejWoBGAcFANYZxA5XBVQVHuMir6jAUceg50J3iSVGrCfQLTUkznNPX9mqBbg0X9/0rjBEKoyhFF0SdzPXZdi7HJWHxMoG2twzaKKJDYSGNjCXWFairUfV2xtRZ5VWdXJwx0zEBFlG6EbQt0X2pAEymBUwqUQktFHfaCBBRKMlCSVEl2lGTsFEKAvm37hLUu0giqqcJUCkpJMBJ04ntBA5vR8yVbTOgxpScNRkkmfY++Za4zHy5RTSSTUjLJJD4HmYELoZkA0pHZgq1pzh2bs+kztkVBSkmgJL1bBn27/BGxb5USSTESmDGIHMwQshpExkNtSulyBq5g20y4Uxn+tjm5hNgL/rzqZs1+/c1ffNBaxsWwcAA6j0K7C439EDSBsKTyKZn9hx37F9vTm/TMTaTImNzY5bNXL82ane58RKe7jksUmxPIR7CTQT0ApQDjsUwpfMXQTBk6jxJzeCdJz2/D7CbgyldnxUoy7+deeB8XK1IHWznEEcgAcB6HY+wNUii0aOKcJf34Ot+d+1L8BwK4/PkH4rDp+eTF46j2Mk7BrgNTARK0lCgRgogZ/56RX/yJ789dFA/8R//q5bdOe/XUYeQTz2APLCDCAtm/gf/jGubqz1xZP7vHdxeBsXRUkebmsQAAAABJRU5ErkJggg==") center / 18px 18px no-repeat !important; image-rendering: pixelated; border: 0 !important; box-shadow: none !important; border-image: none !important; filter: none !important; }
#panel button.cuDot:hover, #newCharBox button.crDot:hover { filter: brightness(1.12) !important; }
/* ===== menu de combat comme PokeMMO (ses captures, 2026-11-13) : bouton « button » de main-hud.png (52 x 52 découpé à 8 px), fond translucide ;
   survol : 4 images de 50 ms puis la lueur jaune reste (button.hover1-4) ; choisi au clavier : coins jaunes qui clignotent toutes les 400 ms (button.selected1-2) ;
   titre Noto Sans Bold 14 px espacé de 0,5 px (ATTAQUE = 70 px), description Bold 13 px */
body.mmo .bActs:not(.mv):not(.pty) button { background: none !important; border: 8px solid transparent; border-image: url("/mmocrop?f=res/main-hud.png&r=7,7,52,52") 8 fill stretch; border-radius: 0; box-shadow: none !important; padding: 0; color: #fff; text-shadow: 0 1px 1px #000c; }
body.mmo .bActs:not(.mv):not(.pty) button b { font: 700 14px/17px "PmmoB", "MmoName", sans-serif; letter-spacing: .5px; }
body.mmo .bActs:not(.mv):not(.pty) button small { font: 700 13px/16px "PmmoB", "MmoName", sans-serif; opacity: 1; }
body.mmo .bActs:not(.mv):not(.pty) button:disabled { border-image-source: url("/mmocrop?f=res/main-hud.png&r=61,7,52,52"); }
body.mmo #bscene .bActsWrap .bActs:not(.mv):not(.pty) button.bSel::after { display: none; }
body.mmo .bActs:not(.mv):not(.pty) button.bSel { animation: pmBtnSel .8s steps(1) infinite; }
body.mmo .bActs:not(.mv):not(.pty) button:hover:not(:disabled) { animation: pmBtnHov .2s steps(1) forwards; }
@keyframes pmBtnSel { 0% { border-image-source: url("/mmocrop?f=res/main-hud.png&r=114,7,52,52"); } 50% { border-image-source: url("/mmocrop?f=res/main-hud.png&r=169,7,52,52"); } }
@keyframes pmBtnHov { 0% { border-image-source: url("/mmocrop?f=res/main-hud.png&r=8,62,52,52"); } 20% { border-image-source: url("/mmocrop?f=res/main-hud.png&r=61,62,52,52"); }
  80% { border-image-source: url("/mmocrop?f=res/main-hud.png&r=114,62,52,52"); } 100% { border-image-source: url("/mmocrop?f=res/main-hud.png&r=169,62,52,52"); } }
/* survol relevé image par image dans sa vidéo PokeMMO (2026-11-13, 30 i/s) : 1 image (33 ms) 8,62, 3 images (100 ms) 61,62, 1 image (33 ms) 114,62, puis 169,62 fixe = 167 ms (avant : 4 x 50 ms) */
body.mmo .bActs:not(.mv):not(.pty) button:hover:not(:disabled) { animation-duration: .167s; }
/* clignotement de la sélection sur une horloge commune, comme PokeMMO (sa vidéo : la sélection s'allume au milieu d'un cycle) : --selDelay posé par bSelect */
body.mmo .bActs:not(.mv):not(.pty) button.bSel:not(:hover) { animation-delay: var(--selDelay, 0s); }
body.mmo .bActs:not(.mv):not(.pty) button small { font: 400 14px/17px "MmoName", "Segoe UI", sans-serif; } /* description : Noto Sans Medium 14 px (mesurée sur sa capture) */
/* texte du combat comme PokeMMO (sa capture plein écran, 2026-11-13) : police battle.ttf de PokeMMO à 48 px pour une fenêtre de 1345 px
   (« Un Rattata sauvage apparaît! » = 500 px mesurés, 504 px à 48 px) → 3,57 % de la largeur de la fenêtre de combat ; à 16 px du bord (1,19 %) ; ombre 1 px #000 à 80 % */
.bWin { container-type: inline-size; }
.bWin .bBar .bText { font: 400 3.57cqw/1 "MmoBattle", "Noto Sans", monospace; letter-spacing: 0; margin-top: -.3cqw; padding: 0 calc(1.19cqw - 6px) 0; text-shadow: 1px 1px 0 #000c; } /* la barre a déjà 6 px de marge */
/* ===== cadres du combat comme PokeMMO, relevés sur sa capture (2026-11-13) =====
   unité --u = 1 pixel de PokeMMO pour une fenêtre de combat de 1345 px (tout suit la taille de la fenêtre) ;
   adversaire : bande battle-ui-enemy 306 x 20, nom Noto Sans Bold 15 px à 47 px du bord, PV 218 x 6 ;
   le mien : bande battle-ui-self 298 x 33, nom à 41 px, PV 218 x 6, « 31 / 31 » Bold 14 px, Exp. 206 x 8 (remplissage #3035ce de 4 px), icônes de l'équipe tous les 36 px */
.bWin { --u: calc(100cqw / 1345); }
body.mmo .bWin .bBox, .bWin .bBox { width: auto; padding: 0; background: none; border: 0; box-shadow: none; color: #fff; text-shadow: 1px 1px 0 #000c; font: 700 calc(var(--u) * 15) / calc(var(--u) * 20) "PmmoB", "MmoName", sans-serif; }
body.mmo .bWin .bBox.foe { left: 0; top: calc(var(--u) * 83); width: calc(var(--u) * 306); height: calc(var(--u) * 43);
  background: url("/mmocrop?f=res/battle-hud.png&r=0,43,306,20") 0 calc(var(--u) * 23) / calc(var(--u) * 306) calc(var(--u) * 20) no-repeat; }
body.mmo .bWin .bBox.mine { left: auto; right: 0; top: auto; bottom: calc(16% + var(--u) * 21); width: calc(var(--u) * 298); height: calc(var(--u) * 141);
  background: url("/mmocrop?f=res/battle-hud.png&r=0,71,298,33") 0 calc(var(--u) * 24) / calc(var(--u) * 298) calc(var(--u) * 33) no-repeat; }
body.mmo .bWin .bBox .bName { position: absolute; left: 0; top: 0; padding: 0 0 0 calc(var(--u) * 47); margin: 0; font: inherit; white-space: nowrap; }
body.mmo .bWin .bBox.mine .bName { padding-left: calc(var(--u) * 41); }
body.mmo .bWin .bBox .bName small { font-size: 1em; }
body.mmo .bWin .bBox .bName .fem { color: #fb6ade; } body.mmo .bWin .bBox .bName .mal { color: #6cb4ff; }
body.mmo .bWin .bBox .bHp { position: absolute; margin: 0; padding: 0; border: 0; border-image: none; background: none; border-radius: 0; left: calc(var(--u) * 44); top: calc(var(--u) * 26); width: calc(var(--u) * 218); height: calc(var(--u) * 6); }
body.mmo .bWin .bBox.mine .bHp { left: calc(var(--u) * 39); top: calc(var(--u) * 27); }
body.mmo .bWin .bBox .bHp i { height: 100%; border-radius: 0; background: url("/mmocrop?f=res/battle-hud.png&r=21,9,1,4") 0 0 / 100% 100% !important; image-rendering: pixelated; }
body.mmo .bWin .bBox .bHp i[style*="f0c020"], body.mmo .bWin .bBox .bHp i[style*="240, 192, 32"] { background-image: url("/mmocrop?f=res/battle-hud.png&r=22,9,1,4") !important; }
body.mmo .bWin .bBox .bHp i[style*="e03030"], body.mmo .bWin .bBox .bHp i[style*="224, 48, 48"] { background-image: url("/mmocrop?f=res/battle-hud.png&r=20,9,1,4") !important; }
body.mmo .bWin .bBox .bNums { position: absolute; left: 0; width: calc(var(--u) * 294); top: calc(var(--u) * 36); margin: 0; text-align: center; font: 700 calc(var(--u) * 14) / calc(var(--u) * 18) "PmmoB", "MmoName", sans-serif; }
body.mmo .bWin .bBox.mine .bXp { position: absolute; left: calc(var(--u) * 44); right: auto; top: calc(var(--u) * 68); width: calc(var(--u) * 206); height: calc(var(--u) * 8); margin: 0; padding: calc(var(--u) * 2) calc(var(--u) * 4); box-sizing: border-box; border: 0; border-radius: 0; overflow: visible; image-rendering: pixelated;
  background: url("/mmocrop?f=res/battle-hud.png&r=15,18,5,8") 0 0 / calc(var(--u) * 5) 100% no-repeat, url("/mmocrop?f=res/battle-hud.png&r=28,18,5,8") 100% 0 / calc(var(--u) * 5) 100% no-repeat,
    url("/mmocrop?f=res/battle-hud.png&r=20,18,1,8") calc(var(--u) * 5) 0 / calc(100% - var(--u) * 10) 100% no-repeat; }
body.mmo .bWin .bBox.mine .bXp i { height: 100%; background: #3035ce; border-radius: 0; }
body.mmo .bWin .bBox .bDots { position: absolute; left: calc(var(--u) * 51); right: auto; top: calc(var(--u) * 109); width: calc(var(--u) * 216); margin: 0; padding: 0; display: flex; justify-content: flex-start; align-items: center; gap: 0; }
body.mmo .bWin .bBox.foe .bDots { top: calc(var(--u) * 46); left: calc(var(--u) * 47); }
body.mmo .bWin .bBox .bDots > * { flex: 0 0 auto; }
body.mmo .bWin .bBox .bDots img, body.mmo .bWin .bBox .bDots .dotSt { width: calc(var(--u) * 32); height: calc(var(--u) * 32); margin: 0 calc(var(--u) * 2); filter: none; }
body.mmo .bWin .bBox .bDots i, body.mmo .bWin .bBox .bDots i.unk { width: calc(var(--u) * 16); height: calc(var(--u) * 16); margin: 0 calc(var(--u) * 10); border-radius: 50%; background: #0000003d; box-shadow: none; }
body.mmo .bWin .bBox .bDots .dotSt img { margin: 0; width: 100%; height: 100%; }
body.mmo .bWin .bBox .bName { letter-spacing: calc(var(--u) * .25); }
body.mmo .bWin .bBox .bName .fem, body.mmo .bWin .bBox .bName .mal { display: inline-block; margin-left: calc(var(--u) * 4); font: 900 calc(var(--u) * 19) / 1 "Segoe UI Symbol", "Segoe UI", sans-serif; vertical-align: calc(var(--u) * -1); -webkit-text-stroke: calc(var(--u) * .6) currentColor; }
body.mmo .bWin .bBox .bName .fem, body.mmo .bWin .bBox .bName .mal { -webkit-text-stroke: 0; font-weight: 700; text-shadow: -1px 0 #3c2f36, 1px 0 #3c2f36, 0 -1px #3c2f36, 0 1px #3c2f36, 1px 1px 0 #000a; } /* ♀ / ♂ cerclés de sombre comme sa capture */
/* ♀ / ♂ du combat : le petit dessin de PokeMMO (relevé pixel par pixel sur sa capture, 9 x 15, rose #fb6ade cerclé de #463e37) ; ♂ relevé sur sa 2e capture */
body.mmo .bWin .bBox .bName .fem, body.mmo .bWin .bBox .bName .mal { display: inline-block; font-size: 0; color: transparent; text-shadow: none; vertical-align: top; position: relative; top: calc(var(--u) * 4); margin-left: calc(var(--u) * 7); width: calc(var(--u) * 9); height: calc(var(--u) * 15); background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAPCAYAAAA2yOUNAAAAjUlEQVR4nGNkgAI3O/P/DGhg16GTjAzoCn5n3fsPw8jiLCAGSAdIwvtKJFwjiM86TYkRJM8EE4ApgFkB4sNMZMLmBhS3oCuCuQHdE0wgAmT3Vp3lKApBfJA40b5jRFcIMgHdE3A3oTsWmc+CK7RhYiDFYEUwa9DZMGvhimACyG7CCkBWgHyGNZyQATZTANyFaXv0ZZonAAAAAElFTkSuQmCC") 0 0 / 100% 100% no-repeat; image-rendering: pixelated; }
body.mmo .bWin .bBox .bName .mal { height: calc(var(--u) * 15); top: calc(var(--u) * 4); background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAPCAYAAAA2yOUNAAAAmUlEQVR4nGNkQALu9hb/YeydB08wwthM6AqEm45haGDCpgBdIROygrd1VmBJEI2skAldAQwgK2SCCSA7FOZwmEYWmCSyQ2F8FI3u9hb/OUvv/I86+A+OQXyYRkYQ45DZEoZAHyUUd4Hcs37LPQa7UzEQNyErgFkB4oPEUQITWQG6J1AUwdyA7gmwIpDd6KEMcxPxvkO3CpsbARmfeA5aOmkrAAAAAElFTkSuQmCC"); } /* ♂ relevé pixel par pixel sur sa capture (Roucool), 9 x 15 */
/* menu du combat placé comme PokeMMO (sa capture, 2026-11-13) : barre de 115 px, boutons 201 x 46 espacés de 10 (côte à côte) et 8 (dessous),
   à 11 px du bord gauche et 10 px du haut de la barre ; textes sur une seule ligne (ils passaient à la ligne et le bas était coupé) */
.bWin .bBar { height: calc(var(--u) * 115); }
body.mmo .bWin .bBox.mine { bottom: calc(var(--u) * 136); }
body.mmo .bWin .bActs:not(.mv):not(.pty):not(.yn) { flex: none; align-self: flex-start; width: auto; height: auto; margin: calc(var(--u) * 10 - 6px) 0 0 calc(var(--u) * 11 - 6px);
  grid-template-columns: repeat(2, calc(var(--u) * 201)); grid-template-rows: repeat(2, calc(var(--u) * 46)); gap: calc(var(--u) * 8) calc(var(--u) * 10); }
body.mmo .bWin .bActs:not(.mv):not(.pty):not(.yn) button { min-width: 0; min-height: 0; overflow: hidden; white-space: nowrap; border-width: calc(var(--u) * 8); }
body.mmo .bWin .bActs:not(.mv):not(.pty):not(.yn) button b { font-size: calc(var(--u) * 14); line-height: calc(var(--u) * 17); letter-spacing: calc(var(--u) * .5); }
body.mmo .bWin .bActs:not(.mv):not(.pty):not(.yn) button small { font-size: calc(var(--u) * 14); line-height: calc(var(--u) * 17); }
/* l'image du bouton a 3 px transparents tout autour : cases de 207 x 52 pour un bouton visible de 201 x 46, aux mêmes places que sa capture */
body.mmo .bWin .bActs:not(.mv):not(.pty):not(.yn) { margin: calc(var(--u) * 7 - 6px) 0 0 calc(var(--u) * 8 - 6px); grid-template-columns: repeat(2, calc(var(--u) * 207)); grid-template-rows: repeat(2, calc(var(--u) * 52)); gap: calc(var(--u) * 2) calc(var(--u) * 4); }
/* police du menu de combat mesurée sur sa capture : titre Bold 14 espacé de 0,7 (ATTAQUE = 71 px), description Medium 13 espacée de 0,45 (« Utiliser un objet. » = 110 px) */
body.mmo .bWin .bActs:not(.mv):not(.pty):not(.yn) button b { font: 700 calc(var(--u) * 14) / calc(var(--u) * 17) "PmmoB", "MmoName", sans-serif; letter-spacing: calc(var(--u) * .7); }
body.mmo .bWin .bActs:not(.mv):not(.pty):not(.yn) button small { font: 400 calc(var(--u) * 13) / calc(var(--u) * 17) "MmoName", "Segoe UI", sans-serif; letter-spacing: calc(var(--u) * .45); }
body.mmo .bWin .bActs:not(.mv):not(.pty):not(.yn) button b, body.mmo .bWin .bActs:not(.mv):not(.pty):not(.yn) button small { display: block; will-change: transform; } /* lissage gris comme PokeMMO : lettres plus fines */
/* ===== polices du combat de PokeMMO (ui/battle.xml + fonts.xml, 2026-11-13) : ce n'est pas Noto Sans mais Noto Sans CJK (lettres latines plus étroites, autre « a » et « g ») ;
   « mechabold » = CJK Bold, contour 1 px #484848 (titres des boutons, noms, PV) ; « main-border » = CJK Medium, contour 1 px #434343 (descriptions).
   Lettres latines seules extraites des .ttc de PokeMMO (licence OFL, 28 Ko chacune). Tailles mesurées sur sa capture (interface de PokeMMO à ×1,07) : Bold 15 px, Medium 13,5 px */
@font-face { font-family: "PmmoCJK"; src: url(police/NotoSansCJK-Medium-latin.otf); font-weight: 400 500; }
@font-face { font-family: "PmmoCJK"; src: url(police/NotoSansCJK-Bold-latin.otf); font-weight: 700; }
.bWin { --pmEdgeB: -1px 0 #484848, 1px 0 #484848, 0 -1px #484848, 0 1px #484848, -1px -1px #484848, 1px 1px #484848, -1px 1px #484848, 1px -1px #484848;
  --pmEdgeM: -1px 0 #434343, 1px 0 #434343, 0 -1px #434343, 0 1px #434343, -1px -1px #434343, 1px 1px #434343, -1px 1px #434343, 1px -1px #434343; }
body.mmo .bWin .bActs:not(.mv):not(.pty):not(.yn) button b { font: 700 calc(var(--u) * 15) / calc(var(--u) * 18) "PmmoCJK", "PmmoB", sans-serif; letter-spacing: 0; text-shadow: var(--pmEdgeB); }
body.mmo .bWin .bActs:not(.mv):not(.pty):not(.yn) button small { font: 500 calc(var(--u) * 13.5) / calc(var(--u) * 17) "PmmoCJK", "MmoName", sans-serif; letter-spacing: 0; text-shadow: var(--pmEdgeM); }
body.mmo .bWin .bBox, body.mmo .bWin .bBox .bName { font-family: "PmmoCJK", "PmmoB", sans-serif; font-weight: 700; }
body.mmo .bWin .bBox .bName { letter-spacing: 0; text-shadow: var(--pmEdgeB); }
body.mmo .bWin .bBox .bNums { font: 700 calc(var(--u) * 15) / calc(var(--u) * 18) "PmmoCJK", "PmmoB", sans-serif; text-shadow: var(--pmEdgeB); }
/* réglage sur sa capture : contour sur 4 côtés seulement (plus fin), lettres un peu espacées (largeurs de PokeMMO : ATTAQUE 71 px, « Sélectionnez votre attaque. » 183 px) */
.bWin { --pmEdgeB: -1px 0 #484848, 1px 0 #484848, 0 -1px #484848, 0 1px #484848; --pmEdgeM: -1px 0 #434343b0, 1px 0 #434343b0, 0 -1px #434343b0, 0 1px #434343b0; }
body.mmo .bWin .bActs:not(.mv):not(.pty):not(.yn) button b { letter-spacing: calc(var(--u) * .6); }
body.mmo .bWin .bActs:not(.mv):not(.pty):not(.yn) button small { letter-spacing: calc(var(--u) * .32); }
/* 2026-11-13, « police identique à 100 % » (sa capture PokeMMO des 4 boutons, 414 x 102) : les textes de PokeMMO sont des lettres blanches lissées, SANS contour
   (le contour #484848 ci-dessus les alourdissait), dessinées par sa propre police bitmap. Aucun réglage de police du navigateur ne donne les mêmes pixels :
   les 8 textes, toujours les mêmes, sont découpés dans sa capture (lettres séparées du dégradé du bouton, police/btn-*.png, 201 x 45 = bouton visible)
   et posés à leur place exacte. Le texte HTML reste (lecteurs, recherche) mais invisible. Duel (ABANDONNER) : texte normal */
body.mmo .bWin .bActs:not(.mv):not(.pty):not(.yn) button:is([data-a=fight], [data-a=bag], [data-a=mons], [data-a=run]) :is(b, small) { color: transparent; text-shadow: none; }
body.mmo .bWin .bActs:not(.mv):not(.pty):not(.yn) button:is([data-a=fight], [data-a=bag], [data-a=mons], [data-a=run])::before { content: ""; position: absolute; pointer-events: none;
  left: calc(var(--u) * -5); top: calc(var(--u) * -5); width: calc(var(--u) * 201); height: calc(var(--u) * 45); background-position: 0 0; background-size: 100% 100%; background-repeat: no-repeat; image-rendering: pixelated; } /* l'image du bouton a 3 px transparents, le bord en a 8 : -5 = coin du bouton visible */
body.mmo .bWin .bActs button[data-a=fight]::before { background-image: url(police/btn-attaque.png); }
body.mmo .bWin .bActs button[data-a=bag]::before { background-image: url(police/btn-sac.png); }
body.mmo .bWin .bActs button[data-a=mons]::before { background-image: url(police/btn-pokemon.png); }
body.mmo .bWin .bActs button[data-a=run]::before { background-image: url(police/btn-fuite.png); }
/* fiche d'une attaque comme PokeMMO (sa capture, 2026-11-13) : 258 px de large, fond blanc, bord double #224a72 / #9db2d0, texte #535353 Noto Sans CJK Medium 12 px,
   titre en Bold, lignes de 18 px, petite pointe sous la bulle au milieu de l'attaque survolée */
#bscene .lrnTip { width: calc(var(--u, 1px) * 258); min-width: 0; box-sizing: border-box; padding: calc(var(--u, 1px) * 4) calc(var(--u, 1px) * 6) calc(var(--u, 1px) * 7); background: #fff; color: #535353;
  border: calc(var(--u, 1px) * 1) solid #224a72; box-shadow: inset 0 0 0 calc(var(--u, 1px) * 1) #9db2d0, 0 2px 6px #0005; border-radius: calc(var(--u, 1px) * 3);
  font: 500 calc(var(--u, 1px) * 12) / calc(var(--u, 1px) * 18) "PmmoCJK", "MmoName", sans-serif; text-shadow: none; }
#bscene .lrnTip::after { content: ""; position: absolute; left: var(--ax, 50%); bottom: calc(var(--u, 1px) * -7); width: calc(var(--u, 1px) * 10); height: calc(var(--u, 1px) * 10); margin-left: calc(var(--u, 1px) * -5); background: #fff; border: solid #224a72; border-width: 0 calc(var(--u, 1px) * 1) calc(var(--u, 1px) * 1) 0; transform: rotate(45deg) scaleY(.8); }
#bscene .lrnTip .ltHead { align-items: center; margin-bottom: calc(var(--u, 1px) * 1); }
#bscene .lrnTip .ltHead b { font-weight: 700; color: #222; }
#bscene .lrnTip .ltHead span { flex-direction: row; gap: calc(var(--u, 1px) * 3); }
#bscene .lrnTip .ltHead i { padding: 0 calc(var(--u, 1px) * 8); border-radius: calc(var(--u, 1px) * 3); font: 400 calc(var(--u, 1px) * 13) / calc(var(--u, 1px) * 15) "MmoBattle", monospace; text-shadow: -1px 0 #0008, 1px 0 #0008, 0 -1px #0008, 0 1px #0008; }
#bscene .lrnTip p { margin: 0 0 calc(var(--u, 1px) * 18); }
#bscene .lrnTip .ltFl { margin-top: calc(var(--u, 1px) * 18); }
#bscene .lrnTip .ltF { padding-left: 1.05em; text-indent: -1.05em; }
#bscene .lrnTip .ltHead i { min-width: calc(var(--u, 1px) * 72); box-sizing: border-box; padding: 0 calc(var(--u, 1px) * 4); line-height: calc(var(--u, 1px) * 15); text-align: center; } /* étiquettes de 72 px comme sa capture */

/* ===== cartes d'attaque et d'équipe du combat comme les 4 boutons (2026-11-13, sa 2e vidéo PokeMMO, relevée image par image) =====
   cadre et fond = mêmes tuiles du thème (main-hud.png) que ATTAQUE / SAC / POKÉMON / FUITE, posées sous le contenu (::before) sans changer la mise en page ;
   sélection ZQSD : coins dorés qui clignotent (0,8 s, horloge commune) ; survol : 33 / 100 / 33 ms puis cadre doré fixe ; un clic à côté retire la sélection.
   Équipe : survol d'une carte qu'on ne peut pas choisir (Pokémon au combat, case vide) = voile bleu foncé (case vide : 64,64,64 -> 48,54,94) ; le Pokémon au combat n'est plus bleu au repos */
body.mmo #bscene .bActs:is(.mv, .pty) :is(.mCard, .pCard) { background: none !important; border-color: transparent !important; box-shadow: none !important; isolation: isolate; overflow: visible !important; } /* coins dorés du thème : 3 px hors de la carte (rognés avant) ; les noms gardent leur propre coupure */
body.mmo #bscene .bActs:is(.mv, .pty) :is(.mCard, .pCard)::before { content: ""; position: absolute; inset: calc(var(--u, 1px) * -3 - 1px); z-index: -1; pointer-events: none;
  border: calc(var(--u, 1px) * 8) solid transparent; border-image: url("/mmocrop?f=res/main-hud.png&r=7,7,52,52") 8 fill stretch; }
body.mmo #bscene .bActs:is(.mv, .pty) :is(.mCard, .pCard).bSel:not(:hover)::before { animation: pmBtnSel .8s steps(1) infinite; animation-delay: var(--selDelay, 0s); }
body.mmo #bscene .bActs:is(.mv, .pty) :is(.mCard, .pCard):hover:not(:disabled)::before { animation: pmBtnHov .167s steps(1) forwards; }
body.mmo #bscene .bActsWrap .bActs:is(.mv, .pty) :is(.mCard, .pCard).bSel::after { display: none; } /* les coins viennent du thème, plus nos crochets */
body.mmo #bscene .bActsWrap .bActs.pty .pCard:is(:disabled, .on):hover::after { content: ""; display: block; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: rgba(24, 39, 139, .4); }

/* RETOUR du combat (sa capture PokeMMO, 2026-11-13) : jamais sélectionné au clavier (pas de coins dorés) ; survol = cadre presque blanc (219), fond éclairci en dégradé (95 -> 120) et léger halo clair intérieur */
body.mmo #bscene .bBack.bSel::after { display: none; }
body.mmo #bscene .bBack:hover:not(:disabled) { animation: none !important; border-image: none !important; border: 1px solid #dbdbdc !important; background: linear-gradient(#64656a, #5b5c61 30%, #6e6f73 70%, #85868a) !important; box-shadow: inset 0 0 0 1px #9a9a9e, inset 0 0 4px #ffffff40 !important; }
/* « B RETOUR » au pixel près, le même dans ATTAQUE, SAC et POKÉMON (ses 2 captures, 2026-11-13, bandeau de 1345 px = 1 --u par pixel) :
   bouton 94 x 26 + 1 ligne d'ombre, à 12 px du bord droit et 8 px du bas du bandeau ; images découpées dans ses captures (icône B + RETOUR + cadre).
   Survol : image 96 x 30 (cadre presque blanc et halo), 1 px à gauche et 2 px au-dessus du bouton. Texte HTML gardé mais invisible, comme ATTAQUE / SAC / POKÉMON / FUITE */
body.mmo #bscene .bWin .bBar .bBack[data-a=back] { position: absolute !important; left: auto !important; top: auto !important; right: calc(var(--u) * 12) !important; bottom: calc(var(--u) * 8) !important; margin: 0 !important;
  width: calc(var(--u) * 94) !important; min-width: 0 !important; height: calc(var(--u) * 27) !important; aspect-ratio: auto !important; padding: 0 !important;
  background: none !important; border: 0 !important; border-image: none !important; box-shadow: none !important; animation: none !important; color: transparent !important; text-shadow: none !important; font-size: calc(var(--u) * 12) !important; overflow: visible !important; }
body.mmo #bscene .bWin .bBar .bBack[data-a=back]::before { content: ""; position: absolute; left: 0; top: 0; width: calc(var(--u) * 94); height: calc(var(--u) * 27); pointer-events: none; background: url(police/btn-retour.png) 0 0 / 100% 100% no-repeat; image-rendering: pixelated; }
body.mmo #bscene .bWin .bBar .bBack[data-a=back]:hover:not(:disabled)::before { left: calc(var(--u) * -1); top: calc(var(--u) * -2); width: calc(var(--u) * 96); height: calc(var(--u) * 30); background-image: url(police/btn-retour-survol.png); }
body.mmo #bscene .bWin .bBar .bBack[data-a=back]::after { display: none !important; }
/* noms, niveaux et PV du combat en police « mechabold » de PokeMMO (toile canvas.mecha, app.js mechaFix ; sa capture du 2026-11-13) :
   adversaire : début du texte à 43 px du bord, bas des lettres à 16 px du haut du cadre ; moi : 40 px et 17 px ; PV centrés sur 148 px, bas des lettres à 52 px ;
   ♂ / ♀ 9 px après la fin du texte, 12 px au-dessus du bas des lettres. La toile a 2 px de marge à gauche et le bas des lettres à 18 px */
.bWin .bBox canvas.mecha { display: block; flex: none; width: calc(var(--u) * var(--cw)); height: calc(var(--u) * var(--ch)); image-rendering: pixelated; }
body.mmo .bWin .bBox .bName:has(> canvas.mecha) { display: flex; align-items: flex-start; top: calc(var(--u) * -2); padding-left: calc(var(--u) * 41); line-height: 0; letter-spacing: 0; text-shadow: none; }
body.mmo .bWin .bBox.mine .bName:has(> canvas.mecha) { top: calc(var(--u) * -1); padding-left: calc(var(--u) * 38); }
body.mmo .bWin .bBox .bName:has(> canvas.mecha) .fem, body.mmo .bWin .bBox .bName:has(> canvas.mecha) .mal { top: calc(var(--u) * 6); margin-left: calc(var(--u) * 9); }
body.mmo .bWin .bBox .bNums:has(> canvas.mecha) { top: 0; width: 0; height: 0; text-shadow: none; }
body.mmo .bWin .bBox .bNums > canvas.mecha { position: absolute; top: calc(var(--u) * 34); }
/* entrée en combat par la caméra 3D (app.js throwIntro, trajet i) : plus de zoom de toute la scène, seul l'assombrissement de l'adversaire reste (iZoom) */
.bWin.iCam3d .bStage { transform: none !important; }
/* CEG : Recherche Avancée façon PokeMMO (capture du 14/11) — Libellé | - valeur + | Libellé | - valeur + */
.fBar .fMdl { width: 180px; } .fBar .fMdl, .fBar button { height: 26px; }
.fScroll { padding: 8px 10px 4px 10px; }
.fGrid { display: grid; grid-template-columns: 234px 176px 234px 176px; gap: 9px 8px; justify-content: start; }
.fL { display: grid; place-items: center; height: 26px; padding: 0 4px; font-size: 12px; text-align: center; white-space: nowrap; overflow: hidden; background: linear-gradient(#4f6f86, #3f5c6e); border: 1px solid #14181b; border-radius: 2px; }
.fS { display: grid; grid-template-columns: 26px 1fr 26px; gap: 4px; }
.fS button { height: 26px; padding: 0; color: #eef1f3; background: linear-gradient(#49535b, #363d43); border: 1px solid #14181b; border-radius: 2px; }
.fS input, .fV select, .fV input { width: 100%; height: 26px; box-sizing: border-box; padding: 0 6px; color: #fff; font: inherit; font-size: 12.5px; text-align: center; background: #424b53; border: 1px solid #14181b; border-radius: 2px; }
.fS input::placeholder { color: #fff; opacity: 1; }
.fV select { appearance: none; padding-right: 18px; text-align-last: center; cursor: pointer; background: #424b53 url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%278%27 height=%2712%27%3E%3Cpath d=%27M1 5l3-4 3 4zM1 7l3 4 3-4z%27 fill=%27%23fff%27/%3E%3C/svg%3E") no-repeat right 7px center; } .fV select option { background: #2b3237; }
.fChk button { width: 100%; height: 26px; color: #ffe699; background: #424b53; border: 1px solid #14181b; border-radius: 2px; }
.fS button:hover, .fChk button:hover { background: linear-gradient(#5b6670, #464f56); }
.fFoot { display: flex; justify-content: flex-end; padding: 6px 10px 2px; }
.fFoot button { height: 30px; padding: 0 16px; color: #eef1f3; background: linear-gradient(#49535b, #363d43); border: 1px solid #14181b; border-radius: 3px; } .fFoot button:hover { background: linear-gradient(#5b6670, #464f56); }
/* ===== Centre d'Échange Global copié sur les captures de PokeMMO (14/11) : fenêtre 919×605, cadre bleu, onglets en trapèze,
   barre bleue, cases du tableau séparées de 2 px (pas de 38 px), boutons gris, pages numérotées ===== */
#cegWin { width: 919px; height: 605px; box-sizing: border-box; background: linear-gradient(#5e808f 0 1px, #4b6778 1px, #486373 30px); border: 1px solid #20292d; border-radius: 3px; box-shadow: 0 0 0 1px #5b7b8b inset, 0 10px 28px #000b; color: #fdfdfd; font-size: 12.5px; }
#cegWin .pcwHead { height: 31px; padding: 0 6px 0 6px; background: none; color: #fdfdfd; font-size: 13px; font-weight: 700; text-shadow: 0 1px 1px #0008; border: 0; }
#cegWin .pcwX svg { width: 11px; height: 11px; stroke-width: 4.5; }
#cegWin .wTabs { height: 24px; padding: 0 0 0 16px; gap: 0; background: none; align-items: stretch; }
#cegWin .wTabs button { position: relative; z-index: 0; height: 24px; margin-right: -7px; padding: 3px 24px 0; color: #e6e6e6; font-size: 12.5px; background: none; border: 0; border-radius: 0; }
#cegWin .wTabs button::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(#2e2e2e 55%, #232323); border: 1px solid #1c1e1f; border-bottom: 0; border-radius: 4px 4px 0 0; transform: perspective(40px) rotateX(9deg); transform-origin: 50% 100%; }
#cegWin .wTabs button.on { z-index: 2; color: #fdfdfd; } #cegWin .wTabs button.on::before { background: #3a3f42; border-color: #192124; }
#cegWin .wTabs button:hover:not(.on)::before { background: linear-gradient(#383838 55%, #2b2b2b); } #cegWin .wTabs button:hover:not(.on) { background: none; }
#cegWin .wBody { margin: 0 9px 5px 5px; padding: 0; background: #3a3f42; border: 1px solid #282828; border-top: 0; }
#cegWin .wBar { flex: none; gap: 5px; height: 36px; min-height: 0; margin: 0 -1px; padding: 4px 12px 4px 11px; background: linear-gradient(#455e6d, #3e505e); border: 1px solid #21292b; border-top: 0; border-bottom-color: #20292d; border-radius: 0 0 4px 4px; }
#cegWin .wBar > * { flex: none; height: 27px; }
#cegWin .wBar button, #cegWin .wBar .wSel, #cegWin .wNew button, #cegWin .wNew .wSlot { height: 27px; padding: 0 9px; color: #fdfdfd; font-size: 12.5px; background: linear-gradient(#535a60, #3c4247); border: 1px solid #2c3236; border-radius: 2px; box-shadow: 0 1px #5c646c inset; }
#cegWin .wBar button:hover:not(:disabled), #cegWin .wNew button:hover:not(:disabled), #cegWin .wTable td.buy button:hover:not(:disabled), #cegWin .wPager button:hover:not(:disabled):not(.on) { background: linear-gradient(#60686e, #474e54); }
#cegWin .wBar button.on { box-shadow: 0 0 0 1px #5cb0fd inset; }
#cegWin .wBar .mInput:not(.wSel) { flex: 1 1 0; min-width: 60px; height: 27px; padding: 0 6px; color: #fff; font-size: 12.5px; background: #405461; border: 1px solid #292f35; border-radius: 2px; box-shadow: none; }
#cegWin .wBar .wSel { width: 147px; padding: 0 22px 0 8px; appearance: none; text-align-last: center; cursor: pointer; background: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%278%27 height=%2712%27%3E%3Cpath d=%27M1 5l3-4 3 4zM1 7l3 4 3-4z%27 fill=%27%23fff%27/%3E%3C/svg%3E") no-repeat right 9px center, linear-gradient(#535a60, #3c4247); }
#cegWin .wBar .wSel option { background: #2b3237; }
#cegWin .wBar .wMdl { width: 265px; } #cegWin .wBar .wBtnSel { width: 310px; margin-right: -2px; padding: 0 8px; background: linear-gradient(#535a60, #3c4247); } #cegWin .wBar .wWide { width: 191px; }
#cegWin .wBar .wIc { display: grid; place-items: center; width: 26px; padding: 0; } #cegWin .wBar .wIc + .wIc { margin-left: 3px; }
#cegWin .wBar svg.rl { width: 12px; height: 12px; fill: none; stroke: #fdfdfd; stroke-width: 1.6; stroke-linecap: round; } #cegWin .wBar svg.bx { width: 14px; height: 14px; fill: none; stroke: #fdfdfd; stroke-width: 1.2; }
#cegWin .wScroll { flex: 1; min-height: 0; overflow: auto; padding: 8px 5px 0 7px; }
#cegWin .wTable { width: 100%; border-spacing: 2px; font-size: 12.5px; table-layout: auto; }
#cegWin .wTable th { position: static; height: 33px; padding: 0 4px; color: #fdfdfd; font-weight: 400; line-height: 1.15; text-align: center; background: linear-gradient(#496576, #3f5261); border: 1px solid #2e3236; border-radius: 0; box-shadow: 0 0 0 1px #1e262b inset; position: relative; top: -2px; }
#cegWin .wTable th.srt { cursor: pointer; } #cegWin .wTable th.srt:hover { background: linear-gradient(#557386, #48606f); }
#cegWin .wTable th svg.ud { width: 7px; height: 11px; margin-left: 8px; vertical-align: -1px; fill: #fdfdfd; }
#cegWin .wTable td { height: 34px; padding: 0 5px; color: #fdfdfd; text-align: left; white-space: nowrap; background: linear-gradient(#3a3f43, #3c4045 45%, #3c4045 60%, #3a3f43); border: 1px solid #27292c; border-radius: 0; }
#cegWin .wTable tr:hover td { background: linear-gradient(#41464a, #43484c 50%, #41464a); }
#cegWin .wTable .ic { width: 70px; padding: 0; text-align: center; } #cegWin .wTable td.ic img { width: 32px; height: 32px; image-rendering: pixelated; vertical-align: middle; } #cegWin .wTable td.ic .pcIc { left: 50%; top: 50%; }
#cegWin .wTable .n58 { width: 60px; } #cegWin .wTable .n90 { width: 92px; } #cegWin .wTable .n96 { width: 98px; } #cegWin .wTable .n100 { width: 102px; } #cegWin .wTable .n110 { width: 110px; } #cegWin .wTable .buy { width: 96px; }
#cegWin .wTable td.buy { padding: 0; background: none; border: 0; } #cegWin .wTable tr:hover td.buy { background: none; }
#cegWin .wTable td.buy button { display: block; width: 100%; height: 36px; padding: 0; color: #fdfdfd; font-size: 12.5px; background: linear-gradient(#51585e, #3f464b); border: 1px solid #2c3236; border-radius: 0; box-shadow: 0 1px #5e676d inset; }
#cegWin .wTable td.up { color: #55d044; } #cegWin .wTable td.down { color: #fa6977; } #cegWin .wTable td.muted { color: #99a3ab; }
#cegWin .wEmpty { height: 34px; padding: 0 4px !important; text-align: left !important; background: linear-gradient(#3a3f43, #3c4045 45%, #3c4045 60%, #3a3f43) !important; border: 1px solid #5cb0fd !important; }
#cegWin .wEmpty.plain { padding-top: 10px !important; text-align: center !important; background: none !important; border: 0 !important; }
#cegWin .wCount { padding: 8px 0 0; text-align: center; }
#cegWin .wPager { flex: none; display: flex; justify-content: center; gap: 6px; padding: 10px 0 9px; }
#cegWin .wPager button { width: 32px; height: 27px; padding: 0; color: #fdfdfd; font-size: 12.5px; background: linear-gradient(#4b5257, #41484d); border: 1px solid #2b3034; border-radius: 2px; box-shadow: 0 1px #545c62 inset, 0 0 0 1px #33373a; }
#cegWin .wPager button.on, #cegWin .wPager button:disabled { opacity: 1; color: #a8a8a8; background: #5c6266; box-shadow: 0 1px #70767b inset, 0 0 0 1px #33373a; cursor: default; } #cegWin .wPager button.on { color: #fdfdfd; }
#cegWin .wPager.ends { justify-content: space-between; padding: 0 126px 18px; }
#cegWin .wLog { padding: 9px 0 0; } #cegWin .wLog .wTable { width: auto; margin: 0 auto; border-spacing: 4px 2px; } #cegWin .wLog .wTable th { top: 0; height: 35px; } #cegWin .wLog .lS { width: 248px; } #cegWin .wLog .lR { width: 138px; }
#cegWin .wMsg { flex: 1; display: grid; place-items: center; padding-bottom: 46px; }
#cegWin .wMsg > div { display: grid; place-items: center; width: 467px; height: 100px; padding: 0 8px; text-align: center; background: linear-gradient(#3a3f43, #3c4045 45%, #3c4045 60%, #3a3f43); border: 1px solid #272a2d; border-radius: 2px; }
#cegWin .wNew { margin-top: 26px; } #cegWin .wNew .wKinds button.on { background: linear-gradient(#55798f, #3f5c6e); }
#cegWin .wNew .mInput { height: 27px; color: #fff; background: #405461; border: 1px solid #292f35; border-radius: 2px; } #cegWin .wNew .wLine b { color: #fdfdfd; }
#cegWin .wBar .fMdl { width: 265px; }
#cegWin .wBar .mInput:not(.wSel) + .wIc { margin-left: 3px; }
#cegWin .wBar button:disabled { opacity: 1; }

/* Pokédex › Type de Match copié sur la capture de PokeMMO (Pikachu, 14/11) : libellés 123 px, cases 275 px (5 étiquettes de 49×14, 5 px d'écart),
   cases bleues comme les en-têtes du CEG, rangées de 30 px espacées de 3 px */
#panel[data-w=dexmon] .dxMatch { max-width: none; width: auto; margin: 16px auto 0; }
#panel[data-w=dexmon] .dxMatch.dxRows { display: grid; grid-template-columns: 123px 275px; justify-content: center; row-gap: 3px; column-gap: 4px; }
#panel[data-w=dexmon] .dxMatch .dxRow { display: contents; }
#panel[data-w=dexmon] .dxMatch .dxRow b, #panel[data-w=dexmon] .dxMatch .dxHead { display: grid; place-items: center; min-height: 29px; margin: 0 0 1px; padding: 0 4px; color: #fbfbfb; font-size: 13px; font-weight: 600; text-align: center; background: linear-gradient(#496475, #445e6c 30%, #405563); border: 1px solid #1e262a; border-radius: 0; box-shadow: 0 0 0 1px #2d3134; }
#panel[data-w=dexmon] .dxMatch .dxHead { margin: 0 1px 1px; }
#panel[data-w=dexmon] .dxMatch .dxTys, #panel[data-w=dexmon] .dxMatch .dxUnkV { display: flex; flex-wrap: wrap; align-content: center; gap: 5px; min-height: 30px; padding: 4px; color: #fbfbfb; background: linear-gradient(#393f43, #3b4045); border: 1px solid #252829; border-bottom-color: #262b2f; border-radius: 0; }
#panel[data-w=dexmon] .dxMatch .dxTys.none, #panel[data-w=dexmon] .dxMatch .dxUnkV { justify-content: center; }
#panel[data-w=dexmon] .dxMatch .ptTy { display: block; }

/* ===== Pokédex copié pixel par pixel sur la capture de PokeMMO (14/11) : fenêtre 663×413, barre bleue de 37 px, grille 12 × 46 px (pas de 51),
   ascenseur blanc de 4 px, barres rayées de 8 px (1 px foncé + 4 px clair) ===== */
body #panel.win[data-w=dex] { width: 663px; height: 413px; max-height: none; box-sizing: border-box; padding: 0; color: #fdfdfd; font-size: 12px; background: linear-gradient(#5e808f 0 1px, #4b6778 1px, #486373 30px); border: 1px solid #20292d; border-radius: 3px; box-shadow: 0 0 0 1px #5b7b8b inset, 0 10px 28px #000b; }
body #panel.win[data-w=dex] .winHead { height: 29px; display: flex; align-items: center; justify-content: space-between; padding: 0 6px; color: #fdfdfd; font-size: 13px; font-weight: 700; text-shadow: 0 1px 1px #0008; background: none; border: 0; border-radius: 0; }
body #panel.win[data-w=dex] .winHead .x { color: #fdfdfd; }
body #panel.win[data-w=dex] #panelBody { position: relative; flex: 1; display: flex; flex-direction: column; gap: 0; min-height: 0; margin: 0 4px 8px; padding: 0; overflow: hidden; background: #3a3f42; border: 1px solid #282828; border-top: 0; }
#panel[data-w=dex] .dxBar { flex: none; display: flex; align-items: flex-start; gap: 6px; height: 37px; margin: 0 -1px; padding: 4px 5px 0; background: linear-gradient(#455f6b, #3e505e); border: 1px solid #29373d; border-bottom-color: #20292d; }
#panel[data-w=dex] .dxBar > * { flex: none; height: 28px; margin: 0; }
body.mmo #panel[data-w=dex] .dxBar .dxBtn, #panel[data-w=dex] .dxBar .dxSel { height: 28px; padding: 0 8px; color: #fdfdfd; font: 12.5px var(--mmoFont); background: linear-gradient(#535a60, #42494e); border: 1px solid #2b3034; border-bottom-color: #272c30; border-radius: 2px; border-image: none; box-shadow: 0 1px #646d74 inset; }
body.mmo #panel[data-w=dex] .dxBar .dxBtn:hover { background: linear-gradient(#60686e, #4b5258); border-image: none; }
body.mmo #panel[data-w=dex] .dxBar .dxBtn.on { box-shadow: 0 0 0 1px #5cb0fd inset; }
#panel[data-w=dex] .dxBar .dxSel { width: 147px; padding: 0 20px 0 8px; appearance: none; text-align-last: center; cursor: pointer; background: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%278%27 height=%2712%27%3E%3Cpath d=%27M1 5l3-4 3 4zM1 7l3 4 3-4z%27 fill=%27%23fff%27/%3E%3C/svg%3E") no-repeat right 9px center, linear-gradient(#535a60, #42494e); }
#panel[data-w=dex] .dxBar .dxQ { width: 217px; padding: 0 6px; color: #fff; font: 12.5px var(--mmoFont); background: #405461; border: 1px solid #283036; border-radius: 2px; }
body.mmo #panel[data-w=dex] .dxBar .dxBtn[data-a=dexadv] { width: 123px; padding: 0; }
body.mmo #panel[data-w=dex] .dxBar .dxIb { display: grid; place-items: center; width: 30px; padding: 0; margin-left: 1px; overflow: hidden; box-shadow: none; } #panel[data-w=dex] .dxIb img { display: block; width: 28px; height: 26px; image-rendering: pixelated; }
#panel[data-w=dex] .dxBar .dxTySel { width: 98px; margin-left: 1px; }
#panel[data-w=dex] .dexGrid { flex: 1; min-height: 0; display: grid; grid-template-columns: repeat(12, 46px); grid-auto-rows: 46px; gap: 5px; align-content: start; justify-content: start; max-height: none; margin: 0; padding: 3px 0 3px 3px; overflow-y: auto; background: none; border: 0; }
#panel[data-w=dex] .dexGrid::-webkit-scrollbar { width: 14px; background: transparent; }
#panel[data-w=dex] .dexGrid::-webkit-scrollbar-track { background: transparent; }
#panel[data-w=dex] .dexGrid::-webkit-scrollbar-thumb { min-height: 23px; background: #fdfdfd padding-box; border: solid transparent; border-width: 0 6px 0 4px; border-radius: 0; }
#panel[data-w=dex] .dexGrid::-webkit-scrollbar-button { display: none; height: 0; }
#panel[data-w=dex] .dexCell { position: relative; width: 46px; height: 46px; padding: 0 !important; color: #fdfdfd; font-size: 12px; line-height: 1; text-align: center; background: linear-gradient(#3a3f43, #3c4045 50%, #3a3f43); border: 2px solid #272a2d; border-bottom-color: #272c2f; border-radius: 3px; box-shadow: none; cursor: pointer; }
#panel[data-w=dex] .dexCell.own { background: #3a3f42; border-color: #77c64f !important; box-shadow: 0 0 0 1px #476241 inset; }
#panel[data-w=dex] .dexCell.own.trade { border-color: #5cb0fd !important; box-shadow: 0 0 0 1px #3f5b75 inset; }
#panel[data-w=dex] .dexCell:hover { border-color: #fdfdfd !important; }
#panel[data-w=dex] .dexCell .dxIc { position: absolute; left: 5px; top: -3px; margin: 0; filter: brightness(0); opacity: 1; }
#panel[data-w=dex] .dexCell.seen .dxIc, #panel[data-w=dex] .dexCell.own .dxIc { filter: none; }
#panel[data-w=dex] .dexCell span { position: absolute; left: 0; right: 0; top: 26px; line-height: 14px; }
#panel[data-w=dex] .dexStats { position: relative; flex: none; display: block; height: 29px; margin: 0; padding: 0; }
#panel[data-w=dex] .dexStats.r2 { height: 33px; }
#panel[data-w=dex] .dxSt { position: absolute; top: -2px; width: 150px; margin: 0; padding: 0; background: none; border: 0; }
#panel[data-w=dex] .dexStats > .dxSt:nth-child(1) { left: 7px; } #panel[data-w=dex] .dexStats > .dxSt:nth-child(2) { left: 176px; } #panel[data-w=dex] .dexStats > .dxSt:nth-child(3) { left: 342px; } #panel[data-w=dex] .dexStats > .dxSt:nth-child(4) { left: 497px; }
#panel[data-w=dex] .dexStats.r2 > .dxSt:nth-child(1) { left: 3px; width: 158px; } #panel[data-w=dex] .dexStats.r2 > .dxSt:nth-child(2) { left: 166px; width: 171px; }
#panel[data-w=dex] .dxSt span { display: block; height: 17px; padding-left: 1px; color: #fdfdfd; font-size: 12px; line-height: 17px; white-space: nowrap; }
#panel[data-w=dex] .dxSt i { position: relative; display: block; height: 8px; margin: 0; overflow: hidden; background: linear-gradient(#252729 0 1px, #2e3033 1px, #393c3f 5px, #34373a 5px 6px, #595d60 6px 7px, #515559 7px); border: solid #232527; border-width: 0 1px; border-radius: 0; }
#panel[data-w=dex] .dxSt em { position: absolute; left: 0; top: 1px; display: block; width: calc(100% * var(--p, 0)); height: 4px; background: repeating-linear-gradient(90deg, var(--d) 0 1px, var(--l) 1px 5px); }
#panel[data-w=dex] .dxSt.w { --d: #cacaca; --l: #fdfdfd; } #panel[data-w=dex] .dxSt.b { --d: #2767a3; --l: #3181cb; } #panel[data-w=dex] .dxSt.g { --d: #709d43; --l: #8cc454; }
#panel[data-w=dex] .dxSt.o { --d: #b0782a; --l: #e0a13c; } #panel[data-w=dex] .dxSt.y { --d: #b89525; --l: #f0cf3a; } #panel[data-w=dex] .dxSt.p { --d: #7a4fb0; --l: #a77ad8; }

/* Pokédex › Recherche Avancée copiée sur les captures de PokeMMO (14/11) : même fenêtre, Nettoyer en haut à droite, grille Libellé 145 | valeur 169 | Libellé 145 | valeur 169,
   rangées de 29 px tous les 33 px, - valeur + pour les statistiques de base (0 à 255), Recherche en bas à droite */
#panel[data-w=dex] .dfBar { padding-right: 5px; } #panel[data-w=dex] .dfBar .wFill { flex: 1; height: 0; }
body.mmo #panel[data-w=dex] .dxBtn.dfBig { width: 94px; height: 28px; padding: 0; }
#panel[data-w=dex] .dfGrid { display: grid; grid-template-columns: 145px 169px 145px 169px; grid-auto-rows: 29px; column-gap: 5px; row-gap: 4px; padding: 3px 0 0 4px; }
#panel[data-w=dex] .dfGrid > :nth-child(4n + 3) { width: 145px; margin-left: -1px; }
#panel[data-w=dex] .dfL { display: grid; place-items: center; height: 29px; color: #fdfdfd; font-size: 12.5px; font-weight: 400; white-space: nowrap; background: linear-gradient(#4c6a7b, #425968); border: 1px solid #1f272b; border-bottom-color: #1e272b; border-radius: 0; box-shadow: 0 1px #2e3236, 1px 0 #2e3236; }
#panel[data-w=dex] .dfV { width: 100%; height: 29px; margin: 0; color: #fdfdfd; font: 12.5px var(--mmoFont); text-align: center; border-radius: 2px; }
#panel[data-w=dex] select.dfV { appearance: none; padding: 0 22px 0 8px; text-align-last: center; cursor: pointer; background: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%278%27 height=%2712%27%3E%3Cpath d=%27M1 5l3-4 3 4zM1 7l3 4 3-4z%27 fill=%27%23fff%27/%3E%3C/svg%3E") no-repeat right 9px center, linear-gradient(#555d63 0 1px, #4d5459 1px, #464d52); border: 1px solid #2b3034; }
#panel[data-w=dex] select.dfV option { background: #2b3237; }
#panel[data-w=dex] input.dfT { padding: 0 6px; background: #3a4045; border: 1px solid #26292b; }
#panel[data-w=dex] .dfS { display: grid; grid-template-columns: 26px 1fr 26px; gap: 4px; height: 29px; }
body.mmo #panel[data-w=dex] .dfS .dxBtn { width: 26px; height: 29px; padding: 0; font-size: 12.5px; }
#panel[data-w=dex] .dfS input { width: 100%; height: 29px; padding: 0; color: #fdfdfd; font: 12.5px var(--mmoFont); text-align: center; background: linear-gradient(#555d63 0 1px, #4d5459 1px, #464d52); border: 1px solid #2b3034; border-radius: 2px; }
#panel[data-w=dex] .dfFoot { display: flex; justify-content: flex-end; padding: 6px 5px 0 0; }
/* les fenêtres passent devant la barre de raccourcis du haut, comme dans PokeMMO (sa demande du 14/11) */
#hotBar { z-index: 5; }

/* Pokédex : listes déroulantes sombres de PokeMMO (captures du 14/11 : bord #1f2326, lignes de 25 px, choix encadré de 21 px), liste active cerclée de bleu #4b88bf,
   champ en cours d'édition cerclé de bleu avec ses boutons - +, bulles « format de numéro non valide », croix noire */
#dxDrop { position: fixed; z-index: 2100; box-sizing: border-box; max-height: 233px; overflow-y: auto; padding: 4px 0 3px; background: linear-gradient(#4e555a, #3a4145 60%, #363d42); border: 1px solid #1f2326; border-radius: 2px; box-shadow: 0 1px #626a72 inset, 1px 0 #5c6469 inset, -1px 0 #5c6469 inset, 0 4px 10px #0007; }
#dxDrop button { display: block; width: calc(100% - 14px); height: 21px; margin: 0 12px 4px 2px; padding: 0 4px; color: #fbfbfb; font: 12.5px var(--mmoFont); text-align: center; white-space: nowrap; overflow: hidden; background: none; border: 1px solid transparent; border-radius: 2px; cursor: pointer; }
#dxDrop button.on { background: linear-gradient(#646d74 0 1px, #5a6267 1px, #555c5f); border-color: #2f373b; box-shadow: 0 0 0 1px #333b3e; }
#dxDrop button:hover:not(.on) { background: #4f575d; }
#dxDrop::-webkit-scrollbar { width: 10px; } #dxDrop::-webkit-scrollbar-track { background: transparent; } #dxDrop::-webkit-scrollbar-thumb { background: #fbfbfb padding-box; border: solid transparent; border-width: 2px 4px 2px 2px; }
#panel[data-w=dex] .dxBar .dxSel.on, #panel[data-w=dex] select.dfV.on, body.mmo #panel[data-w=dex] .dxBar .dxBtn.on { border-color: #4b88bf; background-color: transparent; box-shadow: 0 1px #636c73 inset, 0 0 0 1px #4f8cc4 inset; }
#panel[data-w=dex] .dxBar .dxSel.on, #panel[data-w=dex] select.dfV.on { background: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%278%27 height=%2712%27%3E%3Cpath d=%27M1 5l3-4 3 4zM1 7l3 4 3-4z%27 fill=%27%23fff%27/%3E%3C/svg%3E") no-repeat right 9px center, linear-gradient(#525a5f, #47535d 45%, #4c6881 92%, #5195d3); }
body.mmo #panel[data-w=dex] .dxBar .dxBtn.on { background: linear-gradient(#525a5f, #47535d 45%, #4c6881 92%, #5195d3); }
#panel[data-w=dex] .dfS:focus-within input, body.mmo #panel[data-w=dex] .dfS:focus-within .dxBtn { border-color: #4b88bf; }
#panel[data-w=dex] .dfS input:focus { outline: none; box-shadow: 0 0 0 1px #4f8cc4 inset; }
#panel[data-w=dex] input.dfT:focus { outline: none; border-color: #4b88bf; }
#dxNumTip { position: fixed; z-index: 2100; padding: 4px 8px; color: #222; font: 12.5px var(--mmoFont); white-space: nowrap; background: #fbfbfb; border: 1px solid #222; border-radius: 3px; pointer-events: none; }
#dxNumTip::after { content: ''; position: absolute; left: 50%; bottom: -6px; margin-left: -5px; border: 5px solid transparent; border-top-color: #fbfbfb; border-bottom: 0; filter: drop-shadow(0 1px 0 #222); }
#dxNumHover { position: fixed; z-index: 2100; padding: 10px 8px; color: #fbfbfb; font: 12.5px var(--mmoFont); white-space: nowrap; background: #3b4045; border: 1px solid #24282b; border-radius: 2px; box-shadow: 0 3px 8px #0008; pointer-events: none; }
/* croix de fermeture noire, comme PokeMMO */
body #panel.win[data-w=dex] .winHead .x, body #panel.win[data-w=dexmon] .winHead .x { color: #000 !important; font-size: 17px; font-weight: 900; text-shadow: none; }
body #panel.win[data-w=dex] .winHead .x, body #panel.win[data-w=dexmon] .winHead .x { font-size: 0; padding: 0 2px; } body #panel.win[data-w=dex] .winHead .x::before, body #panel.win[data-w=dexmon] .winHead .x::before { content: '\2716'; font-size: 13px; line-height: 1; }
#cegWin .pcwX { color: #000 !important; }
#panel[data-w=dex] .dexGrid { contain: content; } #panel[data-w=dex] .dexCell { contain: layout paint style; } /* Pokédex : la grille se redessine sans recalculer toute la fenêtre */
/* inscription : e-mail tapé deux fois (2026-11-14) ; « Mot de passe oublié ? » sous ENTRER */
#formBox:has(#emailRow:not(.hidden)) { width: 356px; } #formBox:has(#emailRow:not(.hidden)) .lbBody > label { grid-template-columns: 128px 1fr; }
#formBox .lbLink { justify-self: end; margin: -2px 1px 0; padding: 0; color: #9cc8ee; font: 400 12px "MmoName", "Segoe UI", sans-serif; background: none; border: 0; cursor: pointer; }
#formBox .lbLink:hover { color: #cfe6fa; text-decoration: underline; }
/* mot de passe oublié, comme le formulaire de récupération de PokeMMO (sa capture) : texte, champ Identifiant, case anti-robot, SOUMETTRE orange */
#recoverBox { width: 520px; box-sizing: border-box; }
#recoverBox .recBody { padding: 18px 22px 20px; gap: 14px; color: #fff; font: 400 13px "MmoName", "Segoe UI", sans-serif; }
#recoverBox .recTxt { margin: 0; line-height: 1.45; text-align: center; color: #e8eef2; }
#recoverBox .recField { display: grid; grid-template-columns: 1fr; gap: 1px; padding: 7px 12px 6px; background: #fff; border: 1px solid #d6d6d6; border-radius: 8px; cursor: text; }
#recoverBox .recField span { color: #8a8a8a; font-size: 12px; } #recoverBox .recField input { padding: 0; color: #111; font: 400 16px "Segoe UI", sans-serif; background: none; border: 0; outline: 0; }
#recoverBox .recField:focus-within { border-color: #f28a00; }
#recoverBox .recBot { display: grid; grid-template-columns: 30px 1fr auto; align-items: center; gap: 12px; width: 300px; height: 74px; box-sizing: border-box; padding: 0 12px; color: #000; background: #f9f9f9; border: 1px solid #d3d3d3; border-radius: 3px; box-shadow: 0 0 4px 1px #00000014; }
#recoverBox .recBot > span { font: 400 14px Roboto, "Segoe UI", sans-serif; }
#recoverBox .recBot small { color: #555; font: 400 10px "Segoe UI", sans-serif; text-align: center; line-height: 1.2; }
#recoverBox .recBox { position: relative; width: 28px; height: 28px; padding: 0; background: #fff; border: 2px solid #c1c1c1; border-radius: 2px; cursor: pointer; }
#recoverBox .recBox:hover { border-color: #b2b2b2; box-shadow: inset 0 1px 1px #00000012; }
#recoverBox .recBot.busy .recBox { border: 4px solid #4a90e2; border-top-color: transparent; border-radius: 50%; animation: recSpin .8s linear infinite; }
#recoverBox .recBot.ok .recBox { border-color: transparent; background: none; } #recoverBox .recBot.ok .recBox::after { content: ''; position: absolute; left: 7px; top: -2px; width: 9px; height: 19px; border: solid #009e55; border-width: 0 4px 4px 0; transform: rotate(45deg); }
@keyframes recSpin { to { transform: rotate(360deg); } }
#recoverBox .recSend { height: 46px; color: #fff; font: 700 17px "Segoe UI", sans-serif; letter-spacing: .3px; text-shadow: 0 1px 2px #0006; background: linear-gradient(#ffa22e, #f28a00); border: 0; border-radius: 6px; box-shadow: 0 2px 4px #0004; cursor: pointer; }
#recoverBox .recSend:hover:not(:disabled) { background: linear-gradient(#ffad45, #f59510); } #recoverBox .recSend:disabled { opacity: .6; cursor: default; }
#recMsg { min-height: 16px; color: #ff9b8b; font-size: 12px; line-height: 1.4; text-align: center; } #recMsg.ok { color: #8bf0a5; } #recMsg:empty { display: none; }
/* case « Je ne suis pas un robot » de Google (304 x 78) : inscription et mot de passe oublié */
/* code en image à l'inscription */
#formBox .imgCap { display: flex; align-items: center; gap: 6px; } #formBox .imgCap.hidden, #formBox #imgCapIn.hidden { display: none; }
#formBox #imgCap { width: 280px; height: auto; aspect-ratio: 420 / 64; border: 1px solid #26292a; border-radius: 2px; background: #ddd; user-select: none; -webkit-user-drag: none; }
#formBox #imgCapNew { width: 32px; font-size: 16px !important; }
