/* Shared pixel skin. Layout, touch targets and game rules stay in their
   existing modules; this file unifies the presentation across screens. */
:root{
 --font-ui:"InaPixel","Trebuchet MS",sans-serif;
 --pixel-panel:#182041;--pixel-tile:#243e6b;--pixel-edge:#9fc3e5;
 --pixel-ink:#080e21;
 --pixel-bevel:inset 2px 2px 0 #ffffff20,inset -2px -2px 0 #080e21;
}
html,body{font-family:var(--font-ui);-webkit-font-smoothing:none;font-smooth:never}
button,input,select,textarea{font-family:var(--font-ui)}
input,select,textarea{font-size:16px}
.overlay,.overlay.bg-cover{
 background:var(--pixel-panel) url("ui/bg_stripes.png") repeat!important;
 image-rendering:pixelated;
}
.card.paged:not(.main-menu),#syncDialog.paged,.tutin.paged{
 background:var(--pixel-panel);border-color:#dedede;border-radius:0;
 box-shadow:inset 0 0 0 2px var(--pixel-ink),0 0 0 2px var(--pixel-ink),5px 5px 0 var(--pixel-ink);
}
.card:not(.main-menu) :is(h2,h3,h4,b,strong,button),.tutin :is(h2,b,button),
#syncDialog :is(h2,h3,b,button){font-weight:400}
.card:not(.main-menu) h2{letter-spacing:0;text-shadow:2px 2px 0 var(--pixel-ink)}
.card:not(.main-menu) .top{border-bottom:2px solid var(--pixel-edge)}
.card:not(.main-menu) :is(.ghost,.mode,.pcard,.rcard,.ptile,.cmgr,.opts,.route-card,.banner-card),
.tutin .ghost,#syncDialog .ghost{
 border-radius:0;border-color:var(--pixel-edge);
 background:var(--pixel-tile);box-shadow:var(--pixel-bevel);
}
.card:not(.main-menu) :is(button,input,select,textarea),#syncDialog :is(button,input,select,textarea),
.tutin button{border-radius:0;transition:none}
.card:not(.main-menu) :is(input,select,textarea),#syncDialog :is(input,select,textarea){
 background:#101b36;border-color:var(--pixel-edge);color:var(--ui-text);
 box-shadow:inset 2px 2px 0 var(--pixel-ink);font-size:16px;
}
.card:not(.main-menu) .cta,.tutin .cta,#syncDialog .cta{
 background:var(--ui-accent);color:#142437;border-radius:0;
 box-shadow:inset -3px -3px 0 #bd8535;font-weight:400;letter-spacing:0;
}
.card:not(.main-menu) .cta small{font-weight:400}
.section-tabs,.card .opts{border-radius:0;background:#101b36}
.section-tabs button{border-radius:0;font-weight:400}
.section-tabs button[aria-selected=true]{
 background:var(--pixel-tile);color:var(--ui-cyan);
 box-shadow:inset 0 -3px var(--ui-cyan),inset 2px 2px 0 #ffffff20;
}
.card:not(.main-menu) :is(.runbar,.vsrow,.path li,.rogue-progress span,.pick-context),
.controller-status{border-radius:0;background:#101b36;box-shadow:var(--pixel-bevel)}
.card:not(.main-menu) :is(.pix,.pslot,.pf,.pitch){border-radius:0}
.card .pitch{box-shadow:inset 0 0 0 2px #173c28;border-color:#b6e3bc}
/* Slots use their transform for positioning, so the generic pressed-button
   translation must not move them out from under a mouse/touch press. */
.card .pslot:active{transform:translate(-50%,-50%)}
.card:not(.main-menu) .pix{image-rendering:pixelated;background:#101b36}
.card:not(.main-menu) .ptile{border-top-width:3px}
/* Ficha con copia: marco del color de su rareza (--rc de .rN, style.css; la única, prisma) y, desde épico, el fondo de las de antes */
.card:not(.main-menu) .pcard:is(.r1,.r2,.r3,.r4,.r5){border-color:var(--rc)}.card:not(.main-menu) .pcard.r6{border-image:var(--rar-6) 1}
.card:not(.main-menu) .pcard.r3{background:#302b50}
.card:not(.main-menu) .pcard:is(.r4,.r5,.r6){background:#493b26}
.card:not(.main-menu) :is(.ptile,.pcard).sel{
 background:#224456;outline:2px solid var(--ui-cyan);outline-offset:-2px;
}
.card .ptile .tn,.card .pname,.card .pslot .pn{font-weight:400}
.card .pick-context{
 background:var(--pixel-tile)!important;border-radius:0;box-shadow:var(--pixel-bevel);
}
.card .group label{color:var(--ui-muted)}
.scout-splash{
 border-radius:0;background:#243654;border-color:var(--ui-accent);box-shadow:var(--pixel-bevel);
}
.scout-splash h3{font-weight:400;text-shadow:2px 2px 0 var(--pixel-ink)}
.scout-splash img{image-rendering:pixelated;filter:none}
.scout-splash progress,.scout-splash progress::-webkit-progress-bar{border-radius:0}
.card .banner-card b{font-weight:400;color:var(--ui-accent)}
.card .banner-card.sel{
 background:#493b26;border-color:var(--ui-accent);
 outline:2px solid var(--ui-accent);outline-offset:-2px;
}
.card .banner-card .pk-faces .pix{border-radius:0;box-shadow:1px 1px 0 var(--pixel-ink)}
.card .route-card.elite{background:#493b26;border-color:var(--ui-accent)}
.rogue-progress .done{background:#264d43}
.rogue-progress .now{background:#493b26;border-color:var(--ui-accent)}
.menu-icon{shape-rendering:crispEdges;stroke-linecap:square;stroke-linejoin:miter}
/* Match overlays use the same frame without changing the round stick or
   the size and placement of touch controls. */
.score,.player-hud,.tension-hud,#pauseBtn,#matchRadar,#controllerHints,
.kh-keys,.kh-tech,.toast{
 border-radius:0;border-color:var(--pixel-edge);
 box-shadow:var(--pixel-bevel);font-family:var(--font-ui);
}
.score,.player-hud,.tension-hud,#controllerHints,.kh-keys,.kh-tech,.toast{
 background:#182041f2;
}
.score :is(.team span,.goals,.clock),.player-hud b,.banner{font-weight:400}
#pauseBtn{background:var(--pixel-tile)}
.player-hud progress,.tension-hud progress{border-radius:0}
.act{font-weight:400;box-shadow:var(--pixel-bevel)}
.card button:focus-visible,#syncDialog button:focus-visible,.tutin button:focus-visible{
 outline:3px solid var(--ui-cyan);outline-offset:-3px;
}
@media(hover:hover){
 .card:not(.main-menu) button:not(:disabled):hover{border-color:var(--ui-cyan)}
}

/* Mi equipo (game.js teamEditor/teamBar): barra de equipos guardados (diálogo .teams), banquillo y brazalete de capitán */
.teambar{display:flex;flex-direction:column;gap:4px;min-width:0}
.teambar :is(.tb-slots,.tb-acts){display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
.teambar .tb-acts{grid-template-columns:repeat(4,minmax(0,1fr))}
.teambar button{min-width:0;min-height:44px;margin:0;padding:3px 4px;font-size:12px;line-height:1.15;color:var(--gold);
 background:var(--pixel-tile);border:2px solid var(--pixel-edge);box-shadow:var(--pixel-bevel);overflow-wrap:anywhere;cursor:pointer}
.teambar .tb-slot{display:grid;grid-template-columns:auto auto;grid-template-areas:"n star" "name name";justify-content:center;align-content:center;gap:1px 4px;color:var(--ui-text)}
.tb-slot .tb-n{grid-area:n;font-size:15px;line-height:1;color:var(--ui-muted)}
.teambar .tb-slot{position:relative}
.tb-slot .vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.tb-slot .tb-star{grid-area:star;font-size:13px;line-height:1;color:var(--ui-accent)}
.tb-slot .tb-name{grid-area:name;max-width:100%;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.teambar .tb-slot[aria-pressed=true]{background:#26346e;border-color:var(--ui-accent);box-shadow:inset 0 -3px var(--ui-accent),inset 2px 2px 0 #ffffff20}
.teambar .tb-slot[aria-pressed=true] .tb-n{color:var(--ui-accent)}
#ed .bench{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px 6px;align-items:stretch}
#ed .bench-lab{grid-column:1/-1;font-size:12px;line-height:1.2;color:var(--ui-muted)}
#ed .bench .bslot{position:relative;left:auto;top:auto;transform:none;width:auto;min-width:0;min-height:48px;margin:0;padding:4px 6px;
 display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"f r" "f n";align-items:center;justify-items:start;gap:2px 6px;
 background:#101b36;border:2px solid #4c6f9e;box-shadow:var(--pixel-bevel)}
#ed .bench .bslot.empty{border-style:dashed}
#ed .bench .bslot .pf{grid-area:f;width:32px;height:32px;font-size:18px}
#ed .bench .bslot .pf canvas{width:100%!important;height:100%!important;display:block}
#ed .bench .bslot .pr{grid-area:r;margin:0;white-space:nowrap}
@media(max-width:400px){
 #ed .bench .bslot{padding:3px 4px;column-gap:4px}
 #ed .bench .bslot .pf{width:26px;height:26px}
 #ed .bench .bslot .pr{padding:0 2px}
}
#ed .bench .bslot .pn{grid-area:n;max-width:100%}
.card .pslot.bslot:active{transform:translateY(1px)}
.pslot .pcap{position:absolute;top:-5px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 2px;font-size:12px;line-height:16px;text-align:center;
 color:#1b1b2b;background:var(--ui-accent);border:1px solid var(--pixel-ink);box-shadow:1px 1px 0 var(--pixel-ink);pointer-events:none}
/* Fuera de su puesto (game.js slotBtn): su posición natural en la esquina inferior izquierda del retrato (tapa solo 8 px de la cara).
   Banquillo: su posición natural con color */
.pslot .pf{position:relative}
.pslot .ppos{position:absolute;right:calc(100% - 8px);bottom:0;display:flex;pointer-events:none}
.pslot .ppos .chip{font-size:10px;line-height:11px;padding:0 2px;border-color:var(--pixel-ink);box-shadow:1px 1px 0 var(--pixel-ink)}
.ed-preview .ppos{display:none}
.pslot .pr .chip.pos{font-size:inherit;line-height:inherit;padding:0 2px}
.card .top .tut-icon{flex:none;width:44px;height:44px;min-height:44px;margin:0;padding:0;font-size:18px;line-height:1}
@media(orientation:landscape) and (max-height:500px){
 #ed .bench{grid-template-columns:auto repeat(3,minmax(0,1fr))}
 #ed .bench-lab{grid-column:auto;align-self:center}
}
/* Vertical con poca altura: la etiqueta «Banquillo» va de lado para dejar más campo */
@media(orientation:portrait) and (max-height:740px){
 #ed .edhead{grid-template-areas:"sel auto"}
 #ed .edhead label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 #ed .bench .bslot{min-height:44px;padding:3px 6px}
 #ed .bench{grid-template-columns:auto repeat(3,minmax(0,1fr))}
 #ed .bench-lab{grid-column:auto;align-self:center;writing-mode:vertical-rl;transform:rotate(180deg);font-size:10px;line-height:1}
}

/* Vista previa del equipo en la franja del selector (inerte): campo pequeño y banquillo, con el puesto resaltado */
.pk-field .ed-preview{display:flex;align-items:center;justify-content:center;gap:8px;height:100%;padding:4px 0}
.ed-preview .pitch{flex:none;height:100%;width:auto;aspect-ratio:1.8;border:2px solid #dfeee0;box-shadow:none;
 background:repeating-linear-gradient(90deg,#3f8f3a 0 12.5%,#479c41 12.5% 25%)}
.ed-preview .pslot{width:auto;left:clamp(12px,var(--landscape-x),calc(100% - 12px))!important;top:clamp(12px,var(--landscape-y),calc(100% - 12px))!important}
.ed-preview .pslot .pf{width:22px;height:22px;font-size:12px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 2px var(--rc,#dfeee0)}   /* 0.50: la cara en su aro de rareza, como en Mi equipo */
.ed-preview .pslot .pf canvas{border-radius:50%}
.ed-preview .pslot .pf canvas{width:100%!important;height:100%!important;display:block}
.ed-preview .pslot :is(.pr,.pn){display:none}
.ed-preview .pslot .pcap{top:-6px;left:12px;min-width:12px;height:12px;padding:0 1px;font-size:9px;line-height:10px}
/* El puesto que se cambia queda por encima del oscurecido */
.ed-preview .pslot.sel{z-index:3}
.ed-preview .pslot.sel .pf{box-shadow:0 0 0 2px #ffd06b,0 0 10px 3px rgba(255,208,107,.85)}
.ed-preview .bench{display:flex;flex-direction:column;gap:3px}
.ed-preview .bench-lab{display:none}
.ed-preview .bslot{position:relative;left:auto;top:auto;transform:none;width:auto}
@media not all and (orientation:landscape) and (max-height:520px){
 .ed-preview .pl-mid{left:auto;right:0;top:0;height:100%;width:0;border-width:0 2px 0 0}
 .ed-preview .pl-circle{left:100%;top:50%;width:24%}
 .ed-preview .pl-box{left:-2px;right:auto;top:23%;bottom:auto;width:24%;height:54%}
 .ed-preview .pl-small{left:-2px;right:auto;top:37%;bottom:auto;width:9%;height:26%}
}
@media(orientation:portrait) and (max-height:740px){
 .ed-preview .pslot .pf{width:16px;height:16px;font-size:10px}
 .ed-preview .bench{gap:2px}
}
/* Horizontal bajo: la franja es una columna estrecha; campo vertical (portería abajo) y banquillo debajo */
@media(orientation:landscape) and (max-height:520px){
 .pk-field .ed-preview{flex-direction:column;height:auto;width:100%;padding:0 4px}
 .ed-preview .pitch{width:100%;height:auto;aspect-ratio:.62;background:repeating-linear-gradient(0deg,#3f8f3a 0 12.5%,#479c41 12.5% 25%)}
 .ed-preview .pslot{left:clamp(12px,var(--pitch-x),calc(100% - 12px))!important;top:clamp(12px,var(--pitch-y),calc(100% - 12px))!important}
 .ed-preview .bench{flex-direction:row}
}

/* Diálogos propios con el marco del juego (game.js modal(), clase .modal): renombrar un equipo (.rename), fusionar copias (.fusion),
   equipos (.teams) y comprar en la tienda (.shopbuy, shop.css). Comparten marco, fondo, título y foco; los de confirmar, también los
   botones (el de confirmar, amarillo). Cancelar o Cerrar llevan .back para el ○ del mando */
dialog.modal{box-sizing:border-box;margin:auto;border:0;border-radius:0;
 color:var(--ui-text);background:var(--pixel-panel);font:15px var(--font-ui);
 box-shadow:inset 0 0 0 2px var(--pixel-ink),0 0 0 2px #dedede,6px 6px 0 var(--pixel-ink)}
dialog.modal::backdrop{background:#060918d9}
.modal h2{margin:0;font-size:20px;font-weight:400;text-shadow:2px 2px 0 var(--pixel-ink)}
:is(.rename,.fusion,.shopbuy,.runpick) button{flex:1;min-height:48px;font:16px var(--font-ui);border-radius:0;cursor:pointer;color:var(--ui-text);
 background:var(--pixel-tile);border:2px solid var(--pixel-edge);box-shadow:var(--pixel-bevel)}
:is(.rename .rn-ok,.fusion .fu-ok,.shopbuy .sb-ok,.runpick .rp-go){background:#ffd06b;color:#1b1b2b;border-color:#fff3c4;box-shadow:inset -3px -3px 0 #bd8535}
.modal :is(button,input):focus-visible{outline:3px solid var(--ui-cyan);outline-offset:-3px}

/* Varias partidas a la vez (game.js runChoice): el intento a medias de ese modo, «Seguir con este» / «Empezar otro» y Cancelar */
dialog.runpick{width:min(380px,calc(100vw - 32px));padding:16px}
dialog.runpick[open]{display:flex;flex-direction:column;gap:10px}
.runpick p{margin:0}
.runpick .rp-run{font-size:15px}
.runpick .rp-acts{display:flex;gap:8px}

/* Renombrar un equipo */
dialog.rename{width:min(360px,calc(100vw - 32px));padding:16px}
.rename form{display:flex;flex-direction:column;gap:10px;margin:0}
.rename label{font-size:13px;color:var(--ui-muted)}
.rename input{box-sizing:border-box;width:100%;min-height:44px;padding:6px 10px;font:16px var(--font-ui);color:var(--ui-text);
 background:#101b36;border:2px solid var(--pixel-edge);border-radius:0;box-shadow:inset 2px 2px 0 var(--pixel-ink)}
.rename .rn-acts{display:flex;gap:8px}

/* Fusión de copias (game.js renderFusion): las dos copias, la resultante con su tope y Fusionar / Cancelar.
   Cabe en 440×956 y en 956×440 sin scroll. El borde de cada tarjeta es el color de su rareza (--rc, en style.css) */
dialog.fusion{width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 16px);padding:14px}
dialog.fusion[open]{display:flex;flex-direction:column;gap:10px}
.fusion .fu-rar,.fusion .fu-acts{display:flex;gap:8px}
.fusion .fu-row{display:flex;align-items:stretch;gap:4px}
.fusion .fu-card{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 2px;text-align:center;
 background:#101b36;border:2px solid var(--rc,var(--pixel-edge));box-shadow:inset 2px 2px 0 var(--pixel-ink)}
.fusion .fu-new{background:#2a2614;box-shadow:inset 2px 2px 0 var(--pixel-ink),0 0 0 2px #ffd06b}
.fusion .fu-card i{font-style:normal;font-size:12px;color:var(--ui-muted)}
.fusion .fu-card b{font-weight:400;font-size:14px;white-space:nowrap}
.fusion .fu-card .rar{white-space:nowrap}
.fusion .fu-op{align-self:center;font-size:20px;color:var(--ui-muted)}
.fusion .fu-note{margin:0;font-size:13px;line-height:1.35;color:var(--ui-muted)}
.fusion .fu-rar button{min-height:44px;font-size:14px}
.fusion .fu-rar button[aria-pressed=true]{background:#2c4a8a;border-color:var(--ui-cyan);box-shadow:inset 0 -3px var(--ui-cyan)}
.fusion .fu-ok:disabled{opacity:.5;cursor:default}

/* Bienvenida (game.js renderWelcome, clase .welcome): como la del juego original. Fondo bg_title a pantalla
   completa y una tarjeta de alto automático centrada, con el marco del juego y la tirada naranja dentro.
   PageMenu (pagination.js) no crea pestañas ni barra fija para esta pantalla. */
#screen:has(>#screenBody.welcome){background:#2a68c4 url("ui/bg_title.png") no-repeat center/cover!important;image-rendering:auto;
 padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
#screenBody.welcome{height:auto;max-height:100%;max-width:460px;margin:auto;padding:16px 14px;gap:0;color:var(--ui-text);
 background:rgba(24,32,65,.72);border:2px solid #101010;border-radius:0;box-shadow:0 0 0 2px #dedede,0 6px 0 4px rgba(0,0,0,.35)}
#screenBody.welcome .page-viewport{flex:0 1 auto;min-height:0;display:flex;flex-direction:column}
#screenBody.welcome .page-content{flex:0 1 auto;height:auto;min-height:0;gap:12px}
#screenBody.welcome .title{display:flex;flex-direction:column;align-items:center;gap:4px;margin:0}
#screenBody.welcome .title .logo{display:block;width:100%;max-width:440px;height:auto;max-height:none;cursor:default;
 image-rendering:auto;filter:drop-shadow(0 4px 0 rgba(0,0,0,.35))}
#screenBody.welcome .title span{font-size:18px;color:#fff;text-shadow:2px 2px 0 var(--pixel-ink)}
#screenBody.welcome .note{font-size:12px;line-height:1.6;color:var(--ui-text);opacity:.92}
#screenBody.welcome .note b{color:var(--ui-accent)}
/* Aviso de conversión de una partida 0.30 (tu colección empieza de cero; los Rayos pasan a tickets) */
#screenBody.welcome .wconv{margin:0;padding:6px 8px;border:2px solid var(--ui-accent);background:#101b36b8;opacity:1}
/* Botón naranja del juego (bandas naranja/marrón, borde claro y texto celeste con contorno) */
#screenBody.welcome #wPull{width:100%;min-height:54px;margin:0;padding:9px 10px 11px;border:2px solid #101010;border-radius:0;
 font:24px/1.1 var(--font-ui);color:#bdf6ff;background:linear-gradient(#ee7300 0 62%,#8b3908 62%);box-shadow:0 0 0 2px #dedede;
 text-shadow:2px 0 0 #204173,-2px 0 0 #204173,0 2px 0 #204173,0 -2px 0 #204173,2px 2px 0 #204173,-2px -2px 0 #204173,2px -2px 0 #204173,-2px 2px 0 #204173}
@media(hover:hover){#screenBody.welcome #wPull:hover{filter:brightness(1.1)}}
/* Opciones extra, discretas: una fila (dos si no caben), cada botón con 44 px como mínimo */
#screenBody.welcome .wmore{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:8px}
#screenBody.welcome .wmore .ghost{min-width:0;min-height:44px;margin:0;padding:5px 8px;font-size:14px;line-height:1.2;
 color:var(--ui-muted);background:#101b36b8;border:2px solid #6f8fb8;box-shadow:var(--pixel-bevel);overflow-wrap:anywhere;text-wrap:balance}
@media(hover:hover){#screenBody.welcome .wmore .ghost:hover{color:var(--ui-text);border-color:var(--ui-cyan);background:#182041d9}}
/* Idioma / Language (0.32): dos opciones de radio con aspecto de botón (la tarjeta solo lleva sus tres botones), 44 px de alto */
#screenBody.welcome .wlang{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 8px;margin:0;font-size:12px;color:var(--ui-muted)}
#screenBody.welcome .wlang>span{flex:0 1 auto;text-align:center}
#screenBody.welcome .wlang label{position:relative;display:flex;align-items:center;justify-content:center;min-width:96px;min-height:44px;margin:0;
 padding:4px 10px;font-size:14px;line-height:1.2;color:var(--ui-muted);background:#101b36b8;border:2px solid #6f8fb8;box-shadow:var(--pixel-bevel);cursor:pointer}
#screenBody.welcome .wlang input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
#screenBody.welcome .wlang label:has(input:checked){color:#fff;background:#ee7300;border-color:#101010;box-shadow:0 0 0 2px #dedede}
#screenBody.welcome .wlang label:has(input:focus-visible){outline:2px solid var(--ui-cyan);outline-offset:2px}
/* Horizontal bajo: dos columnas, logo y saludo a la izquierda; textos y botones a la derecha */
@media(orientation:landscape) and (max-height:500px){
 #screenBody.welcome{max-width:min(860px,100%);padding:12px 14px}
 #screenBody.welcome .page-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);column-gap:18px;row-gap:10px;align-items:center}
 #screenBody.welcome .title{grid-column:1;grid-row:1/span 4}
 #screenBody.welcome:has(.wconv) .title{grid-row:1/span 5}
 #screenBody.welcome .page-content>:not(.title){grid-column:2}
 /* El idioma, bajo el logo (columna izquierda), para no alargar la tarjeta */
 #screenBody.welcome .title{grid-row:1/span 3}
 #screenBody.welcome:has(.wconv) .title{grid-row:1/span 4}
 #screenBody.welcome .page-content>.wlang{grid-column:1;grid-row:4}
 #screenBody.welcome:has(.wconv) .page-content>.wlang{grid-row:5}
 #screenBody.welcome #wPull{min-height:48px;font-size:22px;padding:7px 10px 9px}
}

/* Pausa del partido (game.js pauseMain/subsList): cambios (máx. 3), paso 1 «quién sale» y capitán. Botones de 44 px como mínimo */
#pauseBody :is(.opts button,.ghost,.view-actions>button){min-height:44px}
#pauseBody .psubs{gap:4px}
#pauseBody #pSubs{width:100%;margin:0;font-size:16px}
#pauseBody #pSubs:disabled{opacity:.55;cursor:default}
#pauseBody #pSubsWhy{color:var(--ui-muted)}
#pauseBody .pcapt{font-size:14px}
#pauseBody .pcap{display:inline-block;min-width:18px;height:18px;margin-left:6px;padding:0 3px;font-size:12px;line-height:16px;text-align:center;vertical-align:1px;
 color:#1b1b2b;background:var(--ui-accent);border:1px solid var(--pixel-ink);box-shadow:1px 1px 0 var(--pixel-ink)}
#pauseBody h1 span{font-size:16px}
#pauseBody .sub-list{--pk-deep:#0a0f24;--pk-edge:#3f548f;--pk-up:#7be08f;--pk-gold:#ffd06b;--pk-down:#ff9480;
 display:grid;grid-template-columns:minmax(0,1fr);gap:6px}
#pauseBody .sub-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:54px;margin:0;padding:5px 10px;
 text-align:left;font-size:16px;color:var(--ui-text);background:#1d2852;border:2px solid #3f548f;box-shadow:var(--pixel-bevel);cursor:pointer}
#pauseBody .sub-row:focus-visible{outline:3px solid var(--ui-cyan);outline-offset:-3px}
@media(hover:hover){#pauseBody .sub-row:hover{border-color:var(--ui-cyan)}}
#pauseBody .sub-face{width:40px;height:40px}
#pauseBody .sub-face canvas{width:100%!important;height:100%!important;display:block}
#pauseBody .sub-info{display:flex;flex-direction:column;gap:4px;min-width:0}
#pauseBody .sub-name{display:flex;align-items:center;min-width:0}
#pauseBody .sub-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#pauseBody .sub-meta{display:flex;align-items:center;gap:8px;font-size:12px}
#pauseBody .sub-meta .chip{font-size:11px;line-height:1.35}
#pauseBody .sub-state.tired{color:#ffd06b}
#pauseBody .sub-state.spent{color:#ff9480}
#pauseBody .sub-row .pk-en{gap:6px;font-size:14px}
#pauseBody .sub-row .pk-bar{width:56px;height:8px}
/* Horizontal bajo: los 5 en dos columnas para que quepan sin desplazar */
@media(orientation:landscape) and (max-height:520px){
 #pauseBody .sub-list{grid-template-columns:repeat(2,minmax(0,1fr))}
 #pauseBody .sub-row{min-height:50px;padding:4px 8px;gap:8px}
}

/* Informe del final del partido (game.js reportHtml + match-report.js), bajo el marcador en las cuatro pantallas de resultado.
   Vertical: MVP, goles y notas uno debajo de otro, a su altura (muchos goles: se desplaza solo esa lista).
   Horizontal bajo: el resumen a la izquierda y el informe a la derecha, con su alto; si no caben, se desplazan las listas */
.mreport{--mr-up:#7be08f;--mr-down:#ff9480;--mr-gold:#ffd06b;display:flex;flex-direction:column;gap:6px;min-height:0;font-size:14px;color:var(--ui-text)}
.mreport :is(p,h4,ol){margin:0}
.mr-mvp{flex:none;display:flex;align-items:center;gap:8px;padding:5px 8px;background:#493b26;border:2px solid var(--mr-gold);box-shadow:var(--pixel-bevel)}
.mr-mvp .mr-star{color:var(--mr-gold);white-space:nowrap}
.mr-mvp .mr-n{font-size:20px;color:var(--mr-gold)}
.mreport .mr-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mreport small{font-size:11px;color:var(--ui-muted)}
.mreport b{font-weight:400}
.mr-cols{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:6px}
.mr-cols>div{flex:0 1 auto;min-height:0;display:flex;flex-direction:column;gap:3px}
.mreport h4{flex:none;font-size:12px;font-weight:400;color:var(--ui-muted)}
.mreport ol{list-style:none;padding:0;display:flex;flex-direction:column;gap:3px;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.mreport li{flex:none;display:grid;align-items:center;gap:8px;min-height:24px;padding:2px 6px;background:#101b36;box-shadow:var(--pixel-bevel)}
.mr-goals li{grid-template-columns:38px 30px minmax(0,1fr);border-left:3px solid var(--ui-cyan)}
.mr-goals li.rival{border-left-color:var(--mr-down)}
.mr-goals li i{font-style:normal;color:var(--ui-muted)}
.mr-goals li b{color:var(--yellow)}
.mr-goals li span{min-width:0;overflow-wrap:anywhere}
.mr-goals ol{max-height:178px}
.mr-goals .note{font-size:13px}
.mr-rates li{grid-template-columns:auto minmax(0,1fr) auto}
.mr-rates .chip{font-size:11px;line-height:1.35}
.mr-rates .mr-sub{color:var(--ui-cyan)}
.mr-rates .mr-n{min-width:30px;text-align:right;font-size:16px;color:var(--ui-text)}
.mr-rates .mr-n.hi{color:var(--mr-up)}
.mr-rates .mr-n.lo{color:var(--mr-down)}
/* Acciones de 44 px en las pantallas con informe */
#screenBody:has(.mreport) .view-actions button{min-height:44px}
@media(orientation:landscape) and (max-height:500px){
 /* Hasta 12 bloques a la izquierda (filas vacías: 0 px, sin hueco entre filas); la última fila se queda el alto que sobra */
 :is(.page-content,.section-panel:not([hidden])):has(>.mreport){display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);
  grid-template-rows:repeat(12,max-content) minmax(0,1fr);row-gap:0;column-gap:12px;align-content:stretch}
 :is(.page-content,.section-panel):has(>.mreport)>:not(.mreport){grid-column:1;margin-bottom:8px}
 :is(.page-content,.section-panel)>.mreport{grid-column:2;grid-row:1/-1;min-height:0}
 :is(.page-content,.section-panel):has(>.mreport) .result{font-size:40px;gap:8px}
 :is(.page-content,.section-panel):has(>.mreport) .result img{width:48px;height:48px}
 .mr-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:8px}
 .mr-goals ol{max-height:none}
}

/* ===== Mi equipo como en Victory Road (tarea 12; game.js teamEditor con o.panel, slotCard, playerPanel, renderCollection) =====
   Vertical: cabecera (equipo guardado, formación, Mejor equipo), campo con las 5 fichas, banquillo y, debajo, la ficha del jugador
   elegido (solo su cuerpo se desplaza). Horizontal: título y pestañas en una fila, campo a la izquierda y ficha a la derecha.
   --pitch-h y --card-h salen del alto de la página (--page-height, de pagination.js) para que todo quepa sin desplazar */
#ed.tok-ed{--pitch-h:clamp(184px,calc(var(--page-height,760px) * .4),300px);--card-h:clamp(44px,calc(var(--pitch-h) / 4 - 4px),60px);
 --card-w:min(128px,calc(33.333% - 8px));display:flex;flex-direction:column;gap:6px;min-height:0}
#ed.tok-ed .lineup-field{flex:none;overflow:visible;padding:0;gap:6px}
#ed.tok-ed .edhead{display:flex;gap:6px;align-items:stretch}
#ed.tok-ed .edhead label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#ed.tok-ed .edhead select{flex:1 1 0;width:auto;min-width:0}
#ed.tok-ed #teamPick{flex:0 1 auto;max-width:40%;min-height:44px;margin:0;padding:4px 8px;display:flex;align-items:center;gap:5px;font-size:15px;white-space:nowrap;position:relative}
#teamPick .tp-name{min-width:0;overflow:hidden;text-overflow:ellipsis}
#teamPick .tb-star{color:var(--ui-accent)}
#teamPick .tp-more{color:var(--ui-muted);font-size:12px}
#teamPick .vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#ed.tok-ed #edAuto{flex:none;position:relative;font-size:15px;padding:6px 10px}
#ed.tok-ed #edPitch{flex:none;height:var(--pitch-h);min-height:0}
#ed.tok-ed #edPitch .pitch{width:100%;height:100%;max-width:none;max-height:none;aspect-ratio:auto;margin:0;border:2px solid #8fb4ff;box-shadow:none;
 background:repeating-linear-gradient(0deg,#183777 0 12.5%,#1b3d84 12.5% 25%)}
#ed.tok-ed #edPitch .pitch i{border-color:rgba(200,220,255,.45)}
/* Media del equipo: abajo a la derecha (libre en todas las formaciones) y corta («Media 61») */
#ed.tok-ed #edPitch .ed-avg{left:auto;right:6px;bottom:6px;background:#0c1430d9;border-color:#6fb8ff}
#ed.tok-ed #edPitch .ed-avg .ea-x{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* Fichas de formación: retrato con el marco de su rareza (--rc de .rN, style.css; la única, prisma), puesto, elemento, «Lv N»,
   nombre y rareza. La elegida, con borde dorado */
#ed.tok-ed #edPitch .pslot.fcard{left:var(--px)!important;top:var(--py)!important;width:var(--card-w);height:var(--card-h);min-height:0;margin:0;
 display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:5px;padding:4px;box-sizing:border-box;
 background:#13245c;border:2px solid #8fb4ff;color:#e9edff;text-align:left;font-size:11px}
#ed.tok-ed #edPitch .pslot.fcard.sel{background:#2a4aa0;border-color:#ffd06b;box-shadow:0 0 0 3px rgba(255,208,107,.55);z-index:2}
#ed.tok-ed #edPitch .pslot.fcard.empty{background:#16245a;border:2px dashed #3f5aa8;color:#a9c4ff}
#ed.tok-ed .pslot.fcard{container-type:inline-size}
/* Retrato: alto de la ficha y, en fichas estrechas, como mucho el 38 % de su ancho (cqi; sin soporte, solo el alto) */
#ed.tok-ed .fcard .pf{--face:calc(var(--card-h) - 12px);--face:min(calc(var(--card-h) - 12px),38cqi);width:var(--face);height:var(--face);box-sizing:border-box;border:2px solid var(--rc,#3f5aa8);
 box-shadow:none;background:#24366e;font-size:20px;animation:none}
#ed.tok-ed .fcard .pf.r6{border-image:var(--rar-6) 1}
#ed.tok-ed .fcard.empty .pf{border:2px dashed #3f5aa8;background:none;color:var(--gold)}
#ed.tok-ed .fcard .pf canvas{width:100%!important;height:100%!important;display:block}
#ed.tok-ed .fcard .fc-info{min-width:0;display:flex;flex-direction:column;gap:2px;line-height:1.15}
#ed.tok-ed .fcard .fc-top{display:flex;align-items:center;gap:4px;min-width:0}
#ed.tok-ed .fcard .pr{margin:0;padding:0;background:none;border:0;font-size:11px;line-height:1.2;color:#a9c4ff;white-space:nowrap}
#ed.tok-ed .fcard .pr .chip.pos{padding:0 3px}
#ed.tok-ed .fcard .fc-el{position:absolute;top:1px;right:1px;width:9px;height:9px;padding:0;border:1px solid #0c1430;font-size:0}
#ed.tok-ed .fcard .fc-lv{margin-left:auto;color:#ffd06b;white-space:nowrap}
#ed.tok-ed .fcard .pn{max-width:100%;font-size:13px;text-shadow:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#ed.tok-ed .fcard .fc-rar .rar{font-size:9px;line-height:1.25;padding:0 3px;white-space:nowrap}
#ed.tok-ed .fcard .pcap{top:-7px;left:1px;right:auto}
#ed.tok-ed .fcard .ppos{left:0;right:auto;bottom:0}
/* Banquillo: «Banquillo» a la izquierda y tres fichas bajas */
#ed.tok-ed .bench{grid-template-columns:auto repeat(3,minmax(0,1fr));gap:6px;align-items:stretch}
#ed.tok-ed .bench-lab{grid-column:auto;align-self:center;font-size:11px;writing-mode:horizontal-tb;transform:none}
#ed.tok-ed .bench .bslot.fcard{position:relative;left:auto;top:auto;transform:none;width:auto;height:auto;min-height:44px;margin:0;padding:3px 5px;
 display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-areas:none;align-items:center;gap:5px;background:#13245c;border:2px solid #8fb4ff;color:#e9edff;text-align:left}
#ed.tok-ed .bench .bslot.fcard.sel{background:#2a4aa0;border-color:#ffd06b}
#ed.tok-ed .bench .bslot.fcard.empty{background:#16245a;border:2px dashed #3f5aa8;color:#a9c4ff}
#ed.tok-ed .bench .fcard :is(.pf,.pr,.pn){grid-area:auto}
#ed.tok-ed .bench .fcard .pf{--face:32px;font-size:16px}
#ed.tok-ed .bench .fcard .fc-rar{display:none}
#ed.tok-ed .bench .fcard .pn{font-size:12px}
#ed.team-ed .lineup-panel{flex:1 1 0;min-height:0;display:flex;flex-direction:column}
#ed.team-ed .lineup-panel>.pp{flex:1 1 0}
.lineup-panel .pp-none{margin:auto;text-align:center}

/* Ficha del jugador (playerPanel): papel claro como en Victory Road, cabecera oscura, cuerpo con scroll propio y acciones fijas */
.pp{display:flex;flex-direction:column;min-height:0;background:#e9f0ff;color:#13204a;border:3px solid #6fb8ff;box-shadow:3px 3px 0 var(--pixel-ink);font-size:13px}
.pp-head{flex:none;display:flex;gap:10px;padding:8px 10px;background:#16245a;color:#e9edff}
.pp-face{flex:none;width:76px;height:76px;box-sizing:border-box;border:3px solid var(--rc,#3f5aa8);background:#24366e}
.pp-face.r6{border-image:var(--rar-6) 1}
.pp-face canvas{width:100%!important;height:100%!important;display:block}
.pp-id{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.pp-lvrow{display:flex;align-items:baseline;gap:6px;min-width:0}
.pp .plv{margin:0;font-size:14px;white-space:nowrap}
.pp .plv small{font-size:12px;color:#a9c4ff}
:is(.card,.pp-dlg) .pp .plv b{font-size:24px;line-height:1;color:#ffd06b}
.pp-origin{margin-left:auto;min-width:0;font-size:10px;color:#a9c4ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pp-xp{height:6px;background:#0c1430;border:1px solid #3f5aa8}
.pp-xp i{display:block;height:100%;background:#6fe3ff}
.pp-name{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:is(.card,.pp-dlg) .pp-name b{color:#e9edff}
.pp-jp{font-size:11px;color:#a9c4ff}
.pp-tags{display:flex;flex-wrap:wrap;align-items:center;gap:5px}
.pp-tags :is(.chip,.rar){font-size:11px;line-height:1.4}
.pp-tags .pp-rar{margin-left:auto;padding:0 6px;white-space:nowrap}
.pp-body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin}
/* Descripción: 2 líneas como mucho; al tocarla (.open) se ve entera */
.pp-desc{margin:0;padding:6px 10px;font-size:12px;line-height:1.35;border-bottom:2px solid #b9cbf2;cursor:pointer;
 display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
.pp-desc.open{display:block;-webkit-line-clamp:unset;line-clamp:none}
.pp-desc:focus-visible,.pp-tech.locked:focus-visible,div.pp-tech:focus-visible{outline:3px solid #2a62c9;outline-offset:-3px}
.pp-params{display:grid;grid-template-columns:minmax(0,172px) minmax(0,1fr);gap:8px;align-items:center;padding:4px 10px 0}
.pp-radar{width:100%;height:auto;display:block}
.pp-radar .ppr-grid{fill:#d3e0ff;stroke:#6f8fd8;stroke-width:1.5}
.pp-radar .ppr-mid{fill:none;stroke:#9fb6e8;stroke-width:1.5}
.pp-radar .ppr-val{fill:rgba(255,96,64,.35);stroke:#e8462e;stroke-width:2.5}
.pp-radar text{font:13px var(--font-ui);fill:#13204a;text-anchor:middle}
.pp-vals{margin:0;display:grid;row-gap:3px;font-size:12px}
.pp-vals>div{display:flex;justify-content:space-between;align-items:baseline;gap:6px;border-bottom:1px dotted #b9cbf2}
.pp-vals dt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pp-vals dd{margin:0;color:#c2361f;font-size:14px}
.pp-techs{display:flex;flex-direction:column;gap:4px;padding:4px 10px 8px}
:is(.card,.pp-dlg) .pp-techs h4{margin:0;font-size:11px;color:#4a5b8f;text-transform:uppercase}
.pp-techs h4 small{text-transform:none}
.pp-tlist{display:flex;flex-direction:column;gap:4px}
.pp-tlist .note{color:#4a5b8f}
.pp-tech{--tc:#4a5b8f;display:flex;align-items:center;gap:6px;width:100%;box-sizing:border-box;min-height:32px;margin:0;padding:3px 6px;
 background:#fff;border:2px solid #b9cbf2;color:#13204a;font:13px var(--font-ui);text-align:left}
:is(.card,.pp-dlg) .pp-tlist button.pp-tech{min-height:44px;cursor:pointer;background:#fff;border-color:#b9cbf2;box-shadow:none;color:#13204a}
:is(.card,.pp-dlg) .pp-tlist button.pp-tech.on{background:#fff4cf;border-color:#d79a00;box-shadow:inset 4px 0 #d79a00}
:is(.card,.pp-dlg) .pp-tlist button.pp-tech:focus-visible{outline:3px solid #2a62c9;outline-offset:-3px}
:is(.card,.pp-dlg) .pp-tech.locked{opacity:1;background:#eef1f7;color:#5d6888}   /* sin el .locked atenuado de theme.css: contraste ≥ 4,5:1 */
.pp-tech.t-tiro{--tc:#b8321e}.pp-tech.t-regate{--tc:#2a7a33}.pp-tech.t-bloqueo{--tc:#2557b8}.pp-tech.t-parada{--tc:#8a5a00}
.pp-ttype{flex:none;width:56px;padding:1px 3px;font-size:10px;text-align:center;color:#fff;background:var(--tc)}
.pp-tname{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pp-tlv{flex:none;display:inline-flex;align-items:center;gap:3px;padding:0 4px;font-size:11px;color:#ffd06b;background:#13204a}
.pp-tlv .pxi{width:12px;height:12px}   /* 0.40: candado de las que aún no sabe */
.pp-tsrc{flex:none;font-size:10px;color:#8a5a00}
.pp-tpow{flex:none;min-width:30px;text-align:right;color:#c2361f;font-size:15px}
.pp-tech.locked .pp-tpow{color:#7a5650}
.pp-ton{flex:none;color:#8a5a00;font-size:13px}
.pp-acts{flex:none;display:flex;gap:6px;padding:6px 10px 8px;background:#dfe8fb;border-top:2px solid #b9cbf2}
.pp-acts button{margin:0;min-height:44px;border-radius:0;cursor:pointer;font:15px var(--font-ui)}
:is(.card,.pp-dlg) .pp-acts .pp-swap{flex:none;padding:0 14px;color:#e9edff;background:#16245a;border:2px solid #3f5aa8;box-shadow:var(--pixel-bevel)}
:is(.card,.pp-dlg) .pp-acts .pp-fuse{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:3px 8px;line-height:1.1;
 color:#1b1b2b;background:#ffd06b;border:2px solid #fff3c4;box-shadow:inset -3px -3px 0 #bd8535}
:is(.card,.pp-dlg) .pp-fuse b{font-size:14px;color:inherit}
:is(.card,.pp-dlg) .pp-fuse small{font-size:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:is(.card,.pp-dlg) .pp-acts .pp-fuse:disabled{opacity:1;color:#e9edff;background:#3f5aa8;border-color:#6f8fd8;box-shadow:none;cursor:default}

/* «Colección»: buscador y filtros fijos arriba; la lista de jugadores se desplaza sola */
.page-content:has(>.coll),.page-content:has(>.pp-screen){overflow:hidden}
.coll{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px}
.coll-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.coll-bar input{grid-column:1/-1;min-height:44px}
.card .coll-bar select{min-height:44px;padding:0 4px;font-size:14px}
.coll-sum{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:var(--ui-muted)}
.coll-sum button{min-height:44px;margin:0;padding:4px 10px;font-size:13px}
.coll-list{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;display:flex;flex-direction:column;gap:6px;padding:2px;scrollbar-width:thin}
.coll-list>.ghost{flex:none;min-height:44px}
.cg{flex:none;display:flex;gap:6px;align-items:stretch}
.card .cg-main{flex:1;min-width:0;display:flex;align-items:center;gap:8px;min-height:60px;margin:0;padding:4px 8px;text-align:left;cursor:pointer;
 color:var(--ui-text);background:#13245c;border:2px solid #8fb4ff;box-shadow:var(--pixel-bevel);font:14px var(--font-ui)}
.cg-face{flex:none;width:48px;height:48px;box-sizing:border-box;border:2px solid var(--rc,#3f5aa8);background:#24366e}
.cg-face.r6{border-image:var(--rar-6) 1}
.cg-face canvas{width:100%!important;height:100%!important;display:block}
.cg-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.cg-name{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cg-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.cg-meta :is(.chip,.rar){font-size:11px;line-height:1.35}
.cg-copies{display:flex;flex-wrap:wrap;gap:3px}
.cg-copy{min-width:18px;padding:0 3px;font-size:10px;line-height:14px;text-align:center;color:#10140f;background:var(--rc);border:1px solid var(--pixel-ink)}
.cg-copy.r3{color:#000}
.cg-copy.r6{background:var(--rar-6)}
.card .coll .cg-fuse{flex:none;min-width:84px;min-height:44px;margin:0;padding:4px 8px;font-size:14px;color:#1b1b2b;background:#ffd06b;border:2px solid #fff3c4;box-shadow:inset -3px -3px 0 #bd8535}

/* Ficha de un jugador de la colección: botones de sus copias y la ficha, que ocupa el resto */
.pp-screen{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px}
.pp-screen>.pp{flex:1 1 0}
.pp-copies{flex:none;display:flex;flex-wrap:wrap;gap:6px}
:is(.card,.pp-dlg) .pp-copies button{min-height:44px;margin:0;padding:4px 10px;display:flex;align-items:center;gap:6px;font:14px var(--font-ui);color:var(--ui-text);
 background:var(--pixel-tile);border:2px solid var(--pixel-edge);box-shadow:var(--pixel-bevel);cursor:pointer}
:is(.card,.pp-dlg) .pp-copies button[aria-pressed=true]{background:#26346e;border-color:var(--ui-accent);box-shadow:inset 0 -3px var(--ui-accent)}

/* «◀ Volver» de la barra de arriba: 44 px de alto (táctil) en todas las pantallas */
.card .top .back{min-height:44px}
/* Pestañas de Mi equipo (role=tab): la elegida, como un botón pulsado */
.card #tt.team-tabs [role=tab][aria-selected=true]{background:var(--ui-accent);color:#142437;border-color:var(--ui-accent);box-shadow:none}

/* Diálogo «Equipos guardados» */
dialog.teams{width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 16px);padding:14px;overflow:auto}
dialog.teams[open]{display:flex;flex-direction:column;gap:10px}
.teams .note{margin:0;font-size:12px;color:var(--ui-muted)}
.teams .td-acts{display:flex}
.teams .td-acts button{flex:1;min-height:44px;font:16px var(--font-ui);border-radius:0;cursor:pointer;color:var(--ui-text);background:var(--pixel-tile);border:2px solid var(--pixel-edge);box-shadow:var(--pixel-bevel)}

/* Vertical (arreglo I-2 de la revisión): campo de 216 px como mucho, polígono de 116 px, pestañas, cabecera y acciones más justas, para que
   en 440×956 se vean las 3 primeras supertécnicas (las equipadas van primero) sin desplazar la ficha */
@media(orientation:portrait){
 #ed.team-ed{--pitch-h:clamp(184px,calc(var(--page-height,760px) * .28),216px)}
 .card.team-screen #tt.team-tabs{padding:1px}
 .lineup-panel .pp-head{padding:6px 10px}
 .lineup-panel .pp-face{width:64px;height:64px}
 .lineup-panel .pp-name{font-size:16px}
 .card .lineup-panel .pp .plv b{font-size:20px}
 .lineup-panel .pp-params{grid-template-columns:minmax(0,116px) minmax(0,1fr);padding-top:2px}
 .lineup-panel .pp-vals{row-gap:1px}
 .lineup-panel .pp-techs{padding-top:2px;gap:3px}
 .lineup-panel .pp-tlist{gap:3px}
 .lineup-panel .pp-acts{padding:4px 10px}
}
/* Vertical con poca altura: fichas sin la línea de rareza y cabecera de la ficha más baja */
@media(orientation:portrait) and (max-height:760px){
 #ed.tok-ed .fcard .fc-rar{display:none}
 .lineup-panel .pp-head{padding:5px 8px;gap:8px}
 .lineup-panel .pp-face{width:54px;height:54px}
 .lineup-panel .pp-name{font-size:15px}
 .card .lineup-panel .pp .plv b{font-size:18px}
 .lineup-panel .pp-acts{padding:4px 8px}
}
@media(orientation:portrait) and (max-width:480px){
 #ed.tok-ed #edAuto .ea-x{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
}
/* Horizontal: título y pestañas en una fila; campo (columnas por posición) a la izquierda y ficha a la derecha */
@media(orientation:landscape){
 .card.paged.team-screen{max-width:min(1180px,100%);display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;align-items:center}
 .team-screen>.page-heading{grid-column:1;min-width:0}
 .team-screen>.view-toolbar{grid-column:2;min-width:0}
 .team-screen>:is(.page-viewport,.view-actions){grid-column:1/-1;align-self:stretch}
 #ed.team-ed{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,1fr);gap:8px;
  --card-h:clamp(44px,calc((var(--page-height,400px) - 112px) / 3 - 10px),60px);--card-w:min(128px,calc(25% - 8px))}
 #ed.team-ed .lineup-field{display:flex;flex-direction:column;gap:6px;min-height:0}
 #ed.team-ed #edPitch{flex:1 1 0;height:auto}
 #ed.tok-ed #edPitch .pslot.fcard{left:var(--lx)!important;top:var(--ly)!important}
 #ed.tok-ed #edPitch .pitch{background:repeating-linear-gradient(90deg,#183777 0 12.5%,#1b3d84 12.5% 25%)}
 #ed.tok-ed #edPitch .pl-mid{left:auto;right:0;top:0;height:100%;width:0;border-width:0 2px 0 0}
 #ed.tok-ed #edPitch .pl-circle{left:100%;top:50%;width:24%}
 #ed.tok-ed #edPitch .pl-box{left:-2px;right:auto;top:23%;bottom:auto;width:24%;height:54%}
 #ed.tok-ed #edPitch .pl-small{left:-2px;right:auto;top:37%;bottom:auto;width:9%;height:26%}
 #ed.team-ed .lineup-panel{min-height:0}
 /* Ficha en horizontal (boceto): polígono, valores y técnicas en tres columnas; el tipo de técnica, en el borde izquierdo */
 .pp-head{padding:6px 10px}
 .pp-face{width:66px;height:66px}
 .pp-name{font-size:16px}
 /* minmax(0,1fr): si las técnicas no caben, se desplaza el cuerpo y la descripción no se aplasta (arreglo I-2 de la T13) */
 .pp-body{display:grid;grid-template-columns:minmax(84px,112px) minmax(84px,96px) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);column-gap:8px;align-content:start}
 .pp-desc{grid-column:1/-1;padding:4px 10px}
 .pp-params{display:contents}
 .pp-radar{grid-column:1;align-self:start;padding:4px 0 0 8px;box-sizing:border-box}
 .pp-vals{grid-column:2;align-self:start;padding-top:8px}
 .pp-techs{grid-column:3;padding:4px 8px 6px 0}
 .pp-ttype,.pp-ton{display:none}
 .pp-vals{font-size:11px}
 .pp-tech{gap:4px}
 .pp-tpow{min-width:24px}
 .pp-tech{border-left:6px solid var(--tc)}
 :is(.card,.pp-dlg) .pp-tlist button.pp-tech{border-left:6px solid var(--tc)}
 :is(.card,.pp-dlg) .pp-tlist button.pp-tech.on{border-left-color:var(--tc)}
 .pp-acts{padding:4px 10px 6px}
 .coll{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);grid-template-rows:auto auto minmax(0,1fr);column-gap:10px}
 .coll-bar{grid-column:1;grid-template-columns:repeat(2,minmax(0,1fr))}
 .coll-sum{grid-column:1;flex-wrap:wrap}
 .coll-list{grid-column:2;grid-row:1/4}
}
@media(orientation:landscape) and (max-height:430px){
 #ed.tok-ed .fcard .fc-rar{display:none}
 .pp-face{width:54px;height:54px}
}
/* Horizontal con altura: polígono y valores más grandes */
@media(orientation:landscape) and (min-height:600px){
 .pp-body{grid-template-columns:minmax(120px,180px) minmax(96px,124px) minmax(0,1fr)}
 .pp-vals{font-size:12px}
}

/* ===== Galería (tarea 13; game.js renderGallery, galTile y playerPanel en modo 'gallery') =====
   Buscador, filtros y recuento fijos; solo se desplaza la cuadrícula. Vertical: los 6 filtros en 3 columnas encima; horizontal (desde
   600 px de ancho): a la izquierda, con la cuadrícula a la derecha */
.page-content:has(>.gal){overflow:hidden}
.gal{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px}
.card .gal-q input{width:100%;min-height:44px;box-sizing:border-box}
.gal-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.card .gal-bar select{width:100%;min-width:0;min-height:44px;padding:0 4px;font-size:14px}
.gal-sum{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;font-size:13px;color:var(--ui-muted)}
.card .gal-sum button{min-height:44px;margin:0;padding:4px 10px;font-size:13px}
.gal-list{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;padding:2px;scrollbar-width:thin}
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}
.gal-grid>.note{grid-column:1/-1}
/* 0.52.16: Inapedia (sustituye a la Galería): la carta de verdad (PlayerCard) en pequeño, 4 por fila; la que no has tenido, apagada;
   encima, las copias que tienes, la fuerza y el juego si el mote se repite */
.gal-grid.ina-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
/* Más ancho que un móvil en vertical: las que quepan, de 112 px o más (en horizontal con poca altura, de 84 px: dos filas a la vista) */
@media(min-width:600px){.gal-grid.ina-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}}
@media(min-width:600px) and (max-height:500px){.gal-grid.ina-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}}
/* (grid, no block: en WebKit, un botón block no le daba alto a la carta, que lo saca de aspect-ratio con container-type; salían de 0 px) */
/* (contain: en WebKit, cada carta nueva recalculaba la maquetación de toda la lista: 10 pantallas de scroll, 40 s; con contain, 2,5 s) */
.card .gt.ina,.card .gt.ina.own{contain:layout paint style;display:grid;min-height:0;padding:0;border:0;border-image:none;background:none;box-shadow:none}
.gt.ina .pc{width:100%;pointer-events:none}
.gt.ina.miss .pc{filter:grayscale(1) brightness(.72);opacity:.55}
.gt.ina .gt-own{top:3px;right:3px;z-index:2}
.gt.ina .gt-rate{top:3px;left:3px;z-index:2}
.gt.ina .gt-deb{position:absolute;z-index:2;right:7%;bottom:32%;background:#0c1430}   /* sobre el hombro, sin tapar la placa del nombre ni la rareza */
.gt.ina:focus-visible{outline:3px solid var(--yellow,#ffd23a);outline-offset:2px}
.ina-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 6px}
.ina-top .note{margin:0;font-size:12px;min-width:0}
@media(max-height:500px){.ina-top .note{display:none}.ina-top{justify-content:flex-end}}   /* en horizontal con poca altura, sin la nota: que quepa sin desplazar la página */
.card .ina-prz{flex:none;display:inline-flex;flex-direction:row;align-items:center;gap:6px;min-height:44px;padding:6px 10px 8px;font-size:17px}
.ina-prz .pxi{width:20px;height:20px}
.ina-prz .ina-n{min-width:20px;padding:0 5px;font-size:13px;line-height:18px;text-align:center;color:#10140f;text-shadow:none;background:var(--yellow,#ffd23a);border:1px solid #10140f}
.ina-prz .ina-n[hidden]{display:none}
/* (como las otras ventanas con lista: con --ui-height si el navegador no sabe de dvh, y la lista con flex 1 1 auto; con flex:1 y sin dvh, la lista se
   quedaba en 0 px y la ventana salía vacía, solo con el texto de arriba: Rueda03, 31/10) */
.modal.ina-pz{width:min(560px,calc(100% - 24px));max-height:calc(var(--ui-height,100dvh) - 32px);display:flex;flex-direction:column}
.modal.ina-pz[open]{display:flex}
.ina-pz .ip-scroll{overflow:auto;min-height:0;flex:1 1 auto}
.ina-pz h3{margin:10px 0 4px;font-size:15px}
.ip-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.ip-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border:2px solid #3f5aa8;background:#0c1430}
.ip-row.ready{border-color:var(--yellow,#ffd23a)}
.ip-row.got{opacity:.7}
.ip-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ip-t small{font-size:12px;opacity:.9}
.ip-bar{display:block;height:5px;background:#1d2752}
.ip-bar i{display:block;height:100%;background:var(--yellow,#ffd23a)}
.ip-n,.ip-ok{flex:none;font-size:13px}
.ina-pz .ip-go{flex:none;min-height:44px;padding:6px 12px 8px;font-size:17px;text-shadow:1px 0 0 #204173,-1px 0 0 #204173,0 1px 0 #204173,0 -1px 0 #204173}
.card .gal-list>#galleryMore{width:100%;min-height:44px;margin:8px 0 2px}
/* Ficha de la cuadrícula: retrato, nombre, posición y elemento; con copias, el marco de la mejor y cuántas tienes (arriba a la derecha) */
.card .gt{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;min-height:44px;margin:0;padding:6px 3px 5px;
 color:var(--ui-text);background:#13245c;border:2px solid #3f5aa8;border-radius:0;box-shadow:var(--pixel-bevel);font:12px var(--font-ui);text-align:center;cursor:pointer}
.card .gt.own{border-color:var(--rc)}
.card .gt.own.r6{border-image:var(--rar-6) 1}
.gt-face{flex:none;width:56px;height:56px;background:#24366e}
.gt-face canvas{width:100%!important;height:100%!important;display:block}
.gt-nm{display:flex;align-items:baseline;justify-content:center;gap:3px;max-width:100%;min-width:0}
.gt-name{min-width:0;max-width:100%;font-size:12px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gt-deb{flex:none;padding:0 2px;font-size:10px;line-height:12px;color:#a9c4ff;border:1px solid #3f5aa8}
.gt-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:3px}
.gt-meta .chip{font-size:10px;line-height:1.35;padding:0 3px}
.gt-own{position:absolute;top:3px;right:3px;min-width:16px;padding:0 3px;font-size:10px;line-height:14px;text-align:center;color:#10140f;background:var(--rc);border:1px solid var(--pixel-ink)}
.gt.r6 .gt-own{background:var(--rar-6)}
.gt .vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.gt.r3 .gt-own{color:#000}
.gt-rate{position:absolute;top:3px;left:3px;padding:0 3px;font-size:10px;line-height:14px;color:#ffd06b;background:#0c1430;border:1px solid #3f5aa8}
/* Ficha de la galería (playerPanel 'gallery'): datos bajo la descripción y, abajo, las copias por rareza */
.pp-where{margin:0;padding:4px 10px;font-size:11px;line-height:1.35;color:#3d4d80;border-bottom:2px solid #b9cbf2}
.pp-ownbar{flex:none;padding:5px 10px 7px;background:#dfe8fb;border-top:2px solid #b9cbf2}
.pp-ownbar>p{margin:0 0 4px;font-size:12px;color:#13204a}
.pp-own{margin:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.pp-own>div{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:1px;padding:2px 1px 3px;
 background:#fff;border:2px solid var(--rc);border-top-width:6px}
.pp-own>div.r6{border-image:var(--rar-6) 1}
.pp-own dt{max-width:100%;font-size:11px;line-height:1.15;text-align:center;color:#3d4d80;overflow-wrap:anywhere}
.pp-own .sh{display:none}
@media(max-width:599px){
 .pp-own .fu{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .pp-own .sh{display:inline}
}
.pp-own dd{margin:0;font-size:16px;line-height:1.1;color:#13204a}
.pp-own .none dd{color:#5d6888}
/* Vertical con poca altura (teclado abierto): al buscar, se esconden los filtros para dejar sitio a la lista */
@media(max-height:500px) and (max-width:599px){
 .gal:has(#gallerySearch:focus) .gal-bar{display:none}
}
@media(orientation:landscape) and (min-width:600px){
 .gal{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr);grid-template-rows:auto auto auto minmax(0,1fr);column-gap:10px}
 .gal-q,.gal-bar,.gal-sum{grid-column:1;min-width:0}
 .gal-bar{grid-template-columns:repeat(2,minmax(0,1fr))}
 .gal-sum{flex-wrap:wrap}
 .gal-list{grid-column:2;grid-row:1/-1}
}
/* Ficha de la galería en horizontal: los datos, de lado a lado; las copias, en una fila baja con el total a la izquierda */
@media(orientation:landscape){
 .pp-body:has(>.pp-where){grid-template-rows:auto auto minmax(0,1fr)}
 .pp-where{grid-column:1/-1;padding:3px 10px}
 .pp-ownbar{display:flex;align-items:center;gap:8px;padding:4px 10px 5px}
 .pp-ownbar>p{flex:0 1 auto;max-width:10em;margin:0;font-size:11px;line-height:1.25}
 .pp-ownbar>.pp-own{flex:1;min-width:0}
 .pp-own>div{flex-direction:row;justify-content:center;align-items:baseline;gap:5px;padding:2px 3px;border-top-width:2px;border-left-width:6px}
 .pp-own dd{font-size:14px}
}

/* Iconos pixel propios (icons.js, 0.32 A2) en lugar de los emoticonos del sistema: en línea con el texto, 1em de alto y sin suavizar */
.pxi{display:inline-block;height:1em;width:auto;vertical-align:-.14em;flex:none;overflow:visible;image-rendering:pixelated}
.hearts .pxi{margin-right:1px}
.hearts s .pxi{opacity:.3}
.hero-enter .pxi,.gacha-spark .pxi{height:.9em}
.main-menu #mDiscord .pxi,.main-menu #mInstall .pxi,.main-menu #mNews .pxi{height:16px;vertical-align:-3px}

/* Novedades (.news) e Instalar en el móvil (.install), 0.35.1 */
dialog:is(.news,.install){width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 40px);padding:16px;display:flex;flex-direction:column;gap:12px;overflow:hidden}
dialog:is(.news,.install)[open]{display:flex}
:is(.news,.install) h2{display:flex;align-items:center;gap:8px}
.news .nw-list{overflow:auto;min-height:0;display:flex;flex-direction:column;gap:8px;padding-right:2px}
.news .nw-item{background:var(--pixel-tile);border:2px solid var(--pixel-edge);box-shadow:var(--pixel-bevel);padding:8px 10px}
.news .nw-item summary{cursor:pointer;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;list-style:none}
.news .nw-item summary::-webkit-details-marker{display:none}
.news .nw-v{color:#ffd06b}
.news .nw-item summary small{margin-left:auto;opacity:.75;font-size:12px}
.news .nw-item ul{margin:8px 0 2px;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:14px;line-height:1.35}
:is(.news,.install) button{min-height:48px;font:16px var(--font-ui);border-radius:0;cursor:pointer;color:var(--ui-text);background:var(--pixel-tile);border:2px solid var(--pixel-edge);box-shadow:var(--pixel-bevel)}
:is(.news .nw-ok,.install .in-go){background:#ffd06b;color:#1b1b2b;border-color:#fff3c4;box-shadow:inset -3px -3px 0 #bd8535}
.install .note{margin:0;font-size:14px;line-height:1.4}
.install .in-steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;overflow:auto;min-height:0}
.install .in-steps li{display:flex;gap:10px;align-items:center;font-size:15px;line-height:1.35;background:var(--pixel-tile);border:2px solid var(--pixel-edge);padding:8px 10px}
.install .in-n{flex:none;width:30px;height:30px;display:grid;place-items:center;background:#ffd06b;color:#1b1b2b;border:2px solid var(--pixel-ink)}

/* Colocar los botones del móvil (0.35.4): el diálogo tapa justo el campo de juego (left, top, width y height desde game.js) */
dialog.lay-editor{position:fixed;inset:auto;margin:0;padding:0;max-width:none;max-height:none;border:0;border-radius:0;box-shadow:none;overflow:hidden;
  background:repeating-linear-gradient(0deg,#2f7a35 0 48px,#2a6f30 48px 96px)}
dialog.lay-editor::after{content:"";position:absolute;left:0;right:0;top:50%;border-top:2px solid rgba(242,246,236,.35);pointer-events:none}
.le-bar{position:absolute;z-index:2;left:10px;right:10px;top:max(10px,env(safe-area-inset-top,0px));display:grid;gap:6px;padding:10px 12px;
  background:rgba(14,24,48,.94);border:2px solid #3d5a92;box-shadow:var(--pixel-bevel)}
.le-bar h2{margin:0;font-size:18px}
.le-bar h2 small{font-size:12px;color:var(--ui-cyan)}
.le-hint{margin:0;font-size:12px;opacity:.85}
.le-size{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 8px;font-size:13px}
.le-size input{grid-column:1/-1;width:100%;margin:0}
.le-actions{display:flex;gap:6px}
.le-actions button{flex:1;min-height:44px;margin:0}
dialog.lay-editor .le-part{position:absolute;left:var(--lx);top:var(--ly);right:auto;bottom:auto;margin:0;transform:translate(-50%,-50%) scale(var(--k,1));touch-action:none;cursor:grab;transition:none}   /* sin la transición de .act: al arrastrar y al cambiar el tamaño, al instante */
dialog.lay-editor .le-part.sel{outline:3px solid var(--ui-accent,#ffd23a);outline-offset:3px}
dialog.lay-editor .le-stick{width:116px;height:116px;min-height:0;padding:0;border-radius:50%;border:2px solid rgba(242,246,236,.45);background:rgba(8,18,12,.28);box-shadow:none}
.le-knob{position:absolute;left:50%;top:50%;width:50px;height:50px;margin:-25px 0 0 -25px;border-radius:50%;background:rgba(242,246,236,.85)}
@media (orientation:landscape) and (max-height:600px){.le-bar{left:auto;width:min(320px,48%);padding:8px}.le-hint{display:none}}

/* 0.50 (Discord): la pausa enseña tus supertécnicas; en horizontal, en dos columnas para que quepa sin tapar nada */
#pauseBody .ptechs{gap:4px}
#pauseBody .ptech-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
#pauseBody .ptech-list li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:4px 8px;border-radius:6px;background:rgba(255,255,255,.06);font-size:13px}
#pauseBody .ptech-list b{min-width:90px}
#pauseBody .ptech{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#ffd06b}
#pauseBody .ptech .pxi{width:14px;height:14px}
@media (orientation:landscape){#pauseBody .ptech-list{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 0.50: botones del mando a tu gusto (Ajustes → Mando) */
.padmap ul{list-style:none;margin:6px 0;padding:0;display:grid;gap:4px}
.padmap li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:4px 8px;border-radius:6px;background:rgba(255,255,255,.06)}
.padmap .pm-b{min-width:44px;text-align:center}
.padmap .pm-b .pxi{width:18px;height:18px;vertical-align:-4px}
.padmap button.mini{min-height:44px}

/* 0.50 (opinión de un jugador: «en Mi equipo las técnicas quedan cortadas»): el nombre de la supertécnica puede ir en dos líneas en vez de
   cortarse, y en pantallas anchas la ficha del jugador gana ancho frente al campo */
.pp-tname{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.15}
@media (orientation:landscape) and (min-width:1000px){
 #ed.team-ed{grid-template-columns:minmax(0,1fr) minmax(440px,1.15fr)}
}

/* 0.50: aviso de huecos en el banquillo antes de empezar un intento */
.bench-hint{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.bench-hint .mini{min-height:44px}

/* 0.50: «Cómo conseguirlo» en la ficha de la Galería */
.howto{margin:10px 0 0;padding:8px 10px;border-radius:8px;background:#16204a;color:#e9edff}   /* (opaco: sobre la ficha clara, el translúcido no llegaba al contraste) */
.howto h3{margin:0 0 6px;font-size:15px;color:var(--vr-yel,#ffd23c)}
.howto ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.howto li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;font-size:13px}
.howto li>.pxi{width:18px;height:18px}
.howto .mini{min-height:44px;min-width:56px}
/* 0.50: en horizontal bajo, «Cómo conseguirlo» va dentro de la ficha, a lo ancho; las filas, a su altura (si no, la descripción, con
   overflow:hidden, se encoge a 0) y el cuerpo se desplaza */
.pp-body>.howto{grid-column:1/-1}
.pp-body:has(>.howto){grid-template-rows:max-content max-content max-content max-content}
/* 0.50: elegir el equipo guardado antes de empezar un modo */
.draft-team{display:flex;align-items:center;gap:8px;margin:0}
.draft-team select{flex:1;min-height:44px;min-width:0}

/* 0.52.11: Retos de plantilla (Mi equipo → Retos; game.js renderRetos y renderReto) */
.retos,.reto{display:flex;flex-direction:column;gap:8px;overflow:auto;min-height:0;flex:1;overscroll-behavior:contain;touch-action:pan-y;padding:2px}
.rt-lvl{margin:8px 0 0;font-size:13px;font-weight:400;color:#ffe14a}
.rt-card{display:grid;grid-template-columns:1fr auto;gap:3px 10px;text-align:left;padding:10px 12px;align-items:start}
.rt-card b{font-size:15px;font-weight:400}.rt-card small{grid-column:1;font-size:11px;line-height:1.35;opacity:.88}
.rt-card .rt-prize{grid-column:2;grid-row:1;justify-self:end;font-size:12px;white-space:nowrap}
.rt-card .rt-state{grid-column:2;grid-row:2;justify-self:end;align-self:end;font-size:11px;white-space:nowrap}
.rt-card.ok .rt-state{color:#7dffa0}.rt-card.wait,.rt-card.done{opacity:.62}
.rt-stars{color:#ffd23a;letter-spacing:1px;font-size:12px}
.rt-pick{align-self:stretch}
.retos>*,.reto>*{flex:none}   /* (en columna y sin encogerse: si no, se cortan las tarjetas) */
#screenBody .retos .rt-card,#screenBody.vr-theme .page-content .retos .ghost.rt-card:not(.mode):not(.pslot){background:#13214f;color:#fff;height:auto;min-height:0;white-space:normal;line-height:1.25}
/* (los textos de la placa de vr-theme son oscuros: aquí, claros sobre el azul de la tarjeta) */
#screenBody .retos .rt-card b{color:#fff!important}#screenBody .retos .rt-card small{color:#d6e0ff!important}#screenBody .retos .rt-card .rt-prize{color:#ffe14a!important}
#screenBody .retos .rt-card .rt-stars{color:#ffd23a!important}#screenBody .retos .rt-card.ok .rt-state{color:#7dffa0!important}#screenBody .retos .rt-card:is(.wait,.done) .rt-state{color:#d6e0ff!important}
/* Con la pestaña Retos son 4 pestañas: letra algo menor y sin partir palabras («COLLECTIO N») */
.card #tt.team-tabs [role=tab]{overflow-wrap:normal;word-break:normal;hyphens:none;font-size:clamp(10px,2.7vw,15px);padding-inline:3px}
.rd-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 10px}
.rd-head b{font-size:17px;font-weight:400}.rd-head small{flex-basis:100%;font-size:11px;opacity:.85}
.rd-reqs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.rd-reqs li{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:6px 10px;background:rgba(0,0,0,.28);border-radius:6px}
.rd-reqs li.ok{color:#7dffa0}.rd-reqs li.no{color:#ffc2c2}
.rd-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.rd-slot{min-height:96px;padding:0;display:flex;align-items:center;justify-content:center}
.rd-slot.empty{border:2px dashed rgba(255,255,255,.38);border-radius:8px;background:transparent;color:#c4cff0;font-size:12px}
@media (max-width:600px){.rd-slots{grid-template-columns:repeat(6,minmax(0,1fr))}.rd-slot{grid-column:span 2}.rd-slot:first-child{grid-column:2/span 2}}
.rd-acts{display:flex;gap:8px;flex-wrap:wrap}
dialog.rd-pick{width:min(640px,calc(100vw - 24px))}
.rd-pf{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.rd-pf input[type=search]{flex:1;min-width:140px}
.rd-list{max-height:min(52vh,460px);overflow:auto;overscroll-behavior:contain;touch-action:pan-y}
.rd-gone{margin:4px 0 8px;padding-left:18px;font-size:13px;line-height:1.5}.rd-gone .warn{color:#ff9a9a;font-weight:400}
