/* Estructura remota: solo index.html autenticado. Nunca se carga en modo local. */
.app-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.app-iconos { position: absolute; width: 0; height: 0; overflow: hidden; }
.auth-entrada[data-acceso="autenticado"] { background: #0f1625; padding: 24px 24px 40px; }
.auth-entrada[data-acceso="autenticado"] main { max-width: 1180px; }
.auth-entrada[data-acceso="autenticado"] .acceso-layout { display: contents; }
.auth-entrada[data-acceso="autenticado"] .cabecera-principal-erasmus { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 62px; padding: 9px 14px; margin: 0; border: 1px solid #304057; border-radius: 14px; background: #142034; }
.auth-entrada[data-acceso="autenticado"] .app-marca { display: flex; align-items: center; gap: 7px; padding: 0; margin: 0; border: 0; box-shadow: none; background: transparent; min-width: 0; text-align: left; }
.auth-entrada[data-acceso="autenticado"] .app-logo { display: block; width: 50px; height: 40px; flex-shrink: 0; overflow: hidden; }
.auth-entrada[data-acceso="autenticado"] .app-logo img { display: block; width: 110px; max-width: none; height: auto; transform: translate(-34px, -3px); }
.auth-entrada[data-acceso="autenticado"] .app-wordmark { color: #fff; font-family: var(--fuente-logo); font-size: 22px; font-style: oblique; }
.auth-entrada[data-acceso="autenticado"] .app-wordmark > span { color: #b7f34b; }
.auth-entrada[data-acceso="autenticado"] .app-liga-cabecera { min-width: 0; max-width: 420px; }
.auth-entrada[data-acceso="autenticado"] .app-liga-cabecera label { display: block; font-size: 9px; font-weight: 800; color: #b7f34b; letter-spacing: 2px; margin-bottom: 4px; }
.auth-entrada[data-acceso="autenticado"] #selector-liga-activa { width: 100%; min-width: 0; margin: 0; padding: 9px 12px; background: #0f1625; border: 1px solid #485a72; border-radius: 10px; color: #fff; font-size: 14px; }
.auth-entrada[data-acceso="autenticado"] .app-contexto { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 8px; margin: 12px 0 24px; }
.auth-entrada[data-acceso="autenticado"] .app-contexto button { display: flex; align-items: center; gap: 6px; padding: 8px 10px; margin: 0; min-height: 42px; border: 1px solid #3b4c63; border-radius: 10px; background: transparent; color: #c5d2e4; font-size: 11px; }
.auth-entrada[data-acceso="autenticado"] .app-accesos { display: flex; gap: 8px; align-items: center; }
.auth-entrada[data-acceso="autenticado"] .app-accesos button { display: flex; align-items: center; gap: 8px; color: #cad6e6; background: #1c2b40; border: 1px solid #3c4e67; border-radius: 12px; padding: 10px; min-height: 44px; margin: 0; font-size: 12px; }
.auth-entrada[data-acceso="autenticado"] #app-nombre-cuenta { max-width: 100px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.auth-entrada[data-acceso="autenticado"] svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.auth-entrada[data-acceso="autenticado"] #navegacion-unificada { display: flex; flex-wrap: nowrap; gap: 5px; padding: 5px; margin: 10px 0 18px; border: 1px solid #304057; border-radius: 14px; background: #121e2f; }
.auth-entrada[data-acceso="autenticado"] #navegacion-unificada button { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 9px 8px; margin: 0; background: transparent; color: #bdcadd; border: 1px solid transparent; border-radius: 10px; font-size: 12px; box-shadow: none; }
.auth-entrada[data-acceso="autenticado"] #navegacion-unificada [aria-current="page"] { color: #b7f34b; background: #b7f34b0d; border-color: #647e3e; }
.auth-entrada[data-acceso="autenticado"] #navegacion-unificada button:disabled,
.auth-entrada[data-acceso="autenticado"] [data-ir]:disabled { opacity: .45; cursor: not-allowed; }
.auth-entrada[data-acceso="autenticado"] :is(button, a, select):focus-visible { outline: 3px solid #b7f34b; outline-offset: 4px; }
.auth-entrada[data-acceso="autenticado"] .tarjeta { background: #182437; border: 1px solid #35455c; border-radius: 18px; box-shadow: none; }
.auth-entrada[data-acceso="autenticado"] .app-bienvenida { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 0 0 28px; }
.auth-entrada[data-acceso="autenticado"] .app-bienvenida h2 { color: #fff; font-size: clamp(30px, 4vw, 46px); margin: 7px 0 10px; letter-spacing: -.5px; }
.auth-entrada[data-acceso="autenticado"] .app-bienvenida p { color: #b7c5d9; font-size: 13px; margin: 0; }
.auth-entrada[data-acceso="autenticado"] .app-insignia { color: #d3e5b6; border: 1px solid #536843; background: #b7f34b0a; padding: 8px 12px; font-size: 10px; border-radius: 30px; }
.auth-entrada[data-acceso="autenticado"] .app-atajos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 24px 0; }
.auth-entrada[data-acceso="autenticado"] .app-atajos button { display: flex; align-items: center; text-align: left; gap: 14px; background: #1a293d; border: 1px solid #3a4e68; border-radius: 15px; padding: 20px; margin: 0; color: #f5f8ff; box-shadow: none; }
.auth-entrada[data-acceso="autenticado"] .app-atajos button > svg:first-child { width: 36px; height: 36px; color: #b7f34b; padding: 6px; border: 1px solid #536a40; border-radius: 10px; }
.auth-entrada[data-acceso="autenticado"] .app-atajos button span { font-size: 15px; font-weight: 700; min-width: 0; }
.auth-entrada[data-acceso="autenticado"] .app-atajos small { display: block; font-size: 10px; color: #afbed3; font-weight: 400; margin-top: 4px; }
.auth-entrada[data-acceso="autenticado"] .app-flecha { margin-left: auto; width: 16px; color: #b7f34b; }
.auth-entrada[data-acceso="autenticado"] .app-dashboard { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.auth-entrada[data-acceso="autenticado"] .app-dashboard .tarjeta { margin: 0; }
.auth-entrada[data-acceso="autenticado"] .cabecera-noticias { gap: 14px; }
.auth-entrada[data-acceso="autenticado"] .cabecera-noticias h2 { font-size: 29px; margin: 8px 0 0; color: #fff; }
.auth-entrada[data-acceso="autenticado"] .app-pendiente { font-size: 9px; font-weight: 500; padding: 5px 8px; color: #b7c7dc; border: 1px solid #43556c; border-radius: 20px; white-space: nowrap; }
.auth-entrada[data-acceso="autenticado"] .app-vacio { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 290px; padding: 30px 20px; text-align: center; }
.auth-entrada[data-acceso="autenticado"] .app-vacio > svg { width: 50px; height: 50px; padding: 10px; color: #b7f34b; background: #b7f34b09; border: 1px solid #4c603f; border-radius: 16px; margin-bottom: 12px; }
.auth-entrada[data-acceso="autenticado"] .app-vacio h3 { color: #e6edf7; font-size: 24px; margin: 6px 0 10px; }
.auth-entrada[data-acceso="autenticado"] .app-vacio p { color: #b4c2d7; font-size: 13px; line-height: 1.7; max-width: 410px; margin: 0 0 14px; }
.auth-entrada[data-acceso="autenticado"] .app-vacio small { color: #a8b8cd; font-size: 11px; max-width: 390px; }
.auth-entrada[data-acceso="autenticado"] .dashboard-panel-cabecera { flex-wrap: wrap; }
.auth-entrada[data-acceso="autenticado"] .dashboard-panel-cabecera > svg { color: #b7f34b; }
.auth-entrada[data-acceso="autenticado"] .dashboard-panel-cabecera h2 { font-size: 25px; }
.auth-entrada[data-acceso="autenticado"] .dashboard-panel-cabecera .app-pendiente { margin-left: auto; }
.auth-entrada[data-acceso="autenticado"] .app-reserva { border: 1px dashed #45566d; background: #101c2c; border-radius: 10px; padding: 15px; font-size: 12px; color: #afc0d7; }
.auth-entrada[data-acceso="autenticado"] .app-titulo { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 24px; }
.auth-entrada[data-acceso="autenticado"] .app-titulo h2 { color: #fff; font-size: 36px; margin: 6px 0 0; }
.auth-entrada[data-acceso="autenticado"] .app-empezar { padding: 20px; }
.auth-entrada[data-acceso="autenticado"] #cuenta-sesion { margin-top: 30px; padding-top: 20px; border-top: 1px solid #44566d; }
.auth-entrada[data-acceso="autenticado"] #cuenta-salir { color: #ffc2c6; border: 1px solid #86515b; background: #351f2b; }
.auth-entrada[data-acceso="autenticado"] .app-pie { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 38px; padding: 20px 0 0; border-top: 1px solid #304057; color: #98a9c0; font-size: 10px; }
.auth-entrada[data-acceso="autenticado"] .app-pie a { color: #c3d1e3; text-decoration: underline; text-underline-offset: 4px; }
.auth-entrada[data-acceso="autenticado"] #vista-mis-ligas { max-width: 920px; margin: 26px auto 0; }
.auth-entrada[data-acceso="autenticado"] .entrada-ligas-cabecera h2 { font-size: clamp(30px, 5vw, 40px); color: #fff; margin: 6px 0 10px; }
.auth-entrada[data-acceso="autenticado"] .entrada-ligas-cabecera p { color: #b8c6da; font-size: 13px; margin: 0 0 24px; }
.auth-entrada[data-acceso="autenticado"] [data-tipo="sesion"], .auth-entrada .entrada-aviso:empty { display: none; }
.auth-entrada[data-acceso="autenticado"] .entrada-aviso:not(:empty) { color: #d5e7bc; background: #b7f34b0c; border: 1px solid #526a3f; border-radius: 12px; padding: 12px; font-size: 12px; }
.auth-entrada[data-acceso="autenticado"] .tarjetas-ligas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 235px), 1fr)); gap: 16px; }
.auth-entrada[data-acceso="autenticado"] .tarjeta-liga { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; text-align: left; padding: 22px; margin: 0; min-height: 200px; color: #fff; background: #19283c; border: 1px solid #40526b; border-radius: 18px; box-shadow: none; transition: border-color .15s, transform .15s, background .15s; }
.auth-entrada[data-acceso="autenticado"] .tarjeta-liga > svg { color: #b7f34b; width: 42px; height: 42px; padding: 8px; border: 1px solid #617d3e; border-radius: 13px; background: #b7f34b08; }
.auth-entrada[data-acceso="autenticado"] .tarjeta-liga strong { grid-column: 1 / -1; font-size: 21px; line-height: 1.25; font-family: var(--fuente-titulos); overflow-wrap: anywhere; }
.auth-entrada[data-acceso="autenticado"] .tarjeta-liga .tarjeta-liga-rol { grid-column: 2; grid-row: 1; align-self: center; font-size: 10px; padding: 5px 8px; border: 1px solid #586b42; color: #d2eab0; border-radius: 20px; }
.auth-entrada[data-acceso="autenticado"] .tarjeta-liga small { grid-column: 1 / -1; color: #aebed4; font-size: 11px; }
.auth-entrada[data-acceso="autenticado"] .tarjeta-liga-entrar { grid-column: 1 / -1; padding-top: 10px; margin-top: 2px; border-top: 1px solid #3c5067; color: #b7f34b; font-size: 12px; }
.auth-entrada[data-acceso="autenticado"] .entrada-vacia { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 30px 20px; border: 1px dashed #40566f; border-radius: 18px; margin: 0 0 20px; background: #152237; }
.auth-entrada[data-acceso="autenticado"] .entrada-vacia svg { width: 44px; height: 44px; color: #b7f34b; }
.auth-entrada[data-acceso="autenticado"] .entrada-vacia h3 { color: #fff; margin: 15px 0 8px; font-size: 27px; }
.auth-entrada[data-acceso="autenticado"] .entrada-vacia p { color: #b8c6da; max-width: 340px; font-size: 13px; margin: 0; }
.auth-entrada[data-acceso="autenticado"] .entrada-ligas-acciones { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 20px; }
.auth-entrada[data-acceso="autenticado"] .entrada-ligas-acciones button { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; margin: 0; padding: 12px; border-radius: 12px; font-size: 13px; line-height: 1.4; }
.auth-entrada[data-acceso="autenticado"] .boton-secundario, #perfil-onboarding .boton-secundario { background: #203148; border: 1px solid #58704c; color: #d4e5bf; box-shadow: none; }
.auth-entrada[data-acceso="autenticado"] .entrada-ligas-acciones .entrada-refrescar { grid-column: 1 / -1; background: transparent; color: #b7c6d9; border: 0; box-shadow: none; font-size: 11px; min-height: 40px; }
.auth-entrada[data-acceso="autenticado"] .panel-crear-liga { margin: 22px 0 0; padding: 24px; }
.auth-entrada[data-acceso="autenticado"] .panel-crear-liga h3 { font-size: 29px; color: #fff; margin: 0 0 10px; }
.auth-entrada[data-acceso="autenticado"] .panel-crear-liga p { color: #b3c2d7; font-size: 12px; line-height: 1.6; }
.auth-entrada[data-acceso="autenticado"] #form-crear-liga { margin-top: 18px; }
.auth-entrada[data-acceso="autenticado"] :is(#panel-crear-liga, #dialogo-unirse, #dialogo-miembros) label { display: block; margin: 16px 0 8px; font-size: 12px; font-weight: 600; color: #d4dfed; }
.auth-entrada[data-acceso="autenticado"] :is(#panel-crear-liga, #dialogo-unirse, #dialogo-miembros) :is(input, textarea, select) { display: block; width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; background: #0f1929; border: 1px solid #4a5e78; border-radius: 10px; color: #fff; padding: 12px; font: inherit; font-size: 16px; }
.auth-entrada[data-acceso="autenticado"] .crear-liga-futuro { margin: 20px 0; padding: 2px 16px 12px; border: 1px dashed #42536a; border-radius: 12px; }
.auth-entrada[data-acceso="autenticado"] .crear-liga-futuro label span { color: #a7b8ce; font-size: 10px; margin-left: 6px; font-weight: 400; }
.auth-entrada[data-acceso="autenticado"] .crear-liga-futuro :disabled { opacity: .6; cursor: not-allowed; }
.auth-entrada .crear-cargando { display: none; }
.auth-entrada #campos-liga:disabled .crear-texto { display: none; }
.auth-entrada #campos-liga:disabled .crear-cargando { display: inline; }
.auth-entrada[data-acceso="autenticado"] .crear-liga-enviar { width: 100%; min-height: 48px; border-radius: 12px; margin-top: 4px; }
.auth-entrada[data-acceso="autenticado"] #crear-liga-cerrar { width: 100%; margin: 12px 0 0; min-height: 44px; border-radius: 12px; }
.auth-entrada[data-acceso="autenticado"] :is(#dialogo-unirse, #dialogo-miembros) { width: min(440px, calc(100vw - 28px)); max-height: calc(100svh - 32px); overflow: auto; padding: 0; border: 1px solid #4c617d; border-radius: 20px; background: #18283d; color: #fff; margin: auto; }
.auth-entrada[data-acceso="autenticado"] :is(#dialogo-unirse, #dialogo-miembros)::backdrop { background: #040a15bd; backdrop-filter: blur(4px); }
.auth-entrada[data-acceso="autenticado"] :is(#dialogo-unirse, #dialogo-miembros)[open] { animation: entrada-dialogo .15s ease-out; }
.auth-entrada[data-acceso="autenticado"] #unirse-liga { position: relative; padding: 26px; margin: 0; border: 0; background: transparent; }
.auth-entrada[data-acceso="autenticado"] #titulo-unirse { margin: 0 35px 14px 0; font-size: 28px; color: #fff; }
.auth-entrada[data-acceso="autenticado"] #unirse-descripcion { color: #b7c6d9; font-size: 12px; line-height: 1.7; }
.auth-entrada[data-acceso="autenticado"] #unirse-cerrar { position: absolute; top: 8px; right: 8px; padding: 10px; width: 44px; height: 44px; min-height: 44px; background: transparent; color: #c8d5e8; border: 0; margin: 0; box-shadow: none; }
.auth-entrada[data-acceso="autenticado"] #form-unirse button { width: 100%; min-height: 48px; border-radius: 12px; margin: 20px 0 0; }
.auth-entrada[data-acceso="autenticado"] #unirse-estado { color: #b9d49b; font-size: 12px; line-height: 1.6; }
.auth-entrada[data-acceso="autenticado"] #unirse-estado[role="alert"] { color: #ffc2c6; }
@keyframes entrada-dialogo { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@media (hover: hover) {
  .auth-entrada[data-acceso="autenticado"] .tarjeta-liga:hover { background: #20344b; border-color: #b7f34b; transform: translateY(-2px); }
  .auth-entrada[data-acceso="autenticado"] :is([data-ir], [data-vista]):hover:not(:disabled) { color: #b7f34b; border-color: #8ca864; background-color: #1d3044; transform: none; }
}
@media (max-width: 900px) {
  .auth-entrada[data-acceso="autenticado"] .app-accesos { grid-column: auto; justify-content: flex-end; }
  .auth-entrada[data-acceso="autenticado"] #navegacion-unificada button { flex-direction: column; font-size: 10px; gap: 5px; }
  .auth-entrada[data-acceso="autenticado"] .app-atajos button { padding: 14px; gap: 8px; }
  .auth-entrada[data-acceso="autenticado"] .app-flecha { display: none; }
}
@media (max-width: 700px) {
  .auth-entrada[data-acceso="autenticado"] { padding: 16px 14px calc(100px + env(safe-area-inset-bottom)); }
  .auth-entrada[data-acceso="autenticado"] .cabecera-principal-erasmus { grid-template-columns: minmax(0, 1fr) auto; padding: 8px 10px; gap: 8px; }
  .auth-entrada[data-acceso="autenticado"] .app-wordmark { font-size: 18px; }
  .auth-entrada[data-acceso="autenticado"] .app-logo { width: 43px; }
  .auth-entrada[data-acceso="autenticado"] .app-accesos button { justify-content: center; padding: 9px; }
  .auth-entrada[data-acceso="autenticado"] #app-nombre-cuenta { display: none; }
  .auth-entrada[data-acceso="autenticado"] .app-contexto { margin-top: 12px; }
  .auth-entrada[data-acceso="autenticado"] .app-contexto button { flex-direction: column; gap: 2px; font-size: 9px; padding: 5px 8px; }
  .auth-entrada[data-acceso="autenticado"] #navegacion-unificada { position: fixed; z-index: 20; bottom: 0; left: 0; right: 0; width: 100%; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2px; margin: 0; padding: 8px 6px calc(8px + env(safe-area-inset-bottom)); border-radius: 18px 18px 0 0; border-color: #465770; background: #111d2f; }
  .auth-entrada[data-acceso="autenticado"] #navegacion-unificada [data-vista="logros"],
  .auth-entrada[data-acceso="autenticado"] #navegacion-unificada [data-vista="liga"] { display: none; }
  .auth-entrada[data-acceso="autenticado"] #navegacion-unificada button { font-size: 10px; padding: 10px 0; border-radius: 10px; min-height: 54px; }
  .auth-entrada[data-acceso="autenticado"] #navegacion-unificada svg { width: 20px; height: 20px; }
  .auth-entrada[data-acceso="autenticado"] .app-bienvenida { margin-top: 26px; margin-bottom: 22px; }
  .auth-entrada[data-acceso="autenticado"] .app-bienvenida .app-insignia { display: none; }
  .auth-entrada[data-acceso="autenticado"] .app-bienvenida h2 { font-size: 33px; }
  .auth-entrada[data-acceso="autenticado"] .app-atajos { grid-template-columns: 1fr; gap: 10px; }
  .auth-entrada[data-acceso="autenticado"] .app-atajos button { padding: 14px; }
  .auth-entrada[data-acceso="autenticado"] .app-atajos .app-flecha { display: block; }
  .auth-entrada[data-acceso="autenticado"] .app-dashboard { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .auth-entrada[data-acceso="autenticado"] .app-dashboard .tarjeta { padding: 18px; }
  .auth-entrada[data-acceso="autenticado"] .cabecera-noticias { flex-wrap: wrap; }
  .auth-entrada[data-acceso="autenticado"] .app-titulo { margin-top: 25px; flex-wrap: wrap; }
  .auth-entrada[data-acceso="autenticado"] .app-titulo h2 { font-size: 31px; }
  .auth-entrada[data-acceso="autenticado"] .app-vacio { padding: 30px 10px; min-height: 250px; }
  .auth-entrada[data-acceso="autenticado"] #vista-liga .tarjeta { padding: 18px; }
  .auth-entrada[data-acceso="autenticado"] #vista-liga :is(button, input, select, textarea) { max-width: 100%; }
}
@media (max-width: 360px) {
  .auth-entrada[data-acceso="autenticado"] .entrada-ligas-acciones > button > svg { display: none; }
  .auth-entrada[data-acceso="autenticado"] .panel-crear-liga { padding: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .auth-entrada[data-acceso="autenticado"] * { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
.deporte-tabla-scroll { max-width: 100%; overflow-x: auto; }
.deporte-tabla-scroll table { width: 100%; border-collapse: collapse; }
.deporte-tabla-scroll th, .deporte-tabla-scroll td { padding: 12px 10px; text-align: left; border-bottom: 1px solid #ffffff20; overflow-wrap: anywhere; }
.deporte-tabla-scroll td:not(:first-child) { font-variant-numeric: tabular-nums; }
#deporte-inicio, #deporte-ranking, #deporte-actividades { min-width: 0; overflow-wrap: anywhere; }
/* Gestión: reutiliza las ventanas, filas y recompensas de la aplicación original. */
#modal-gestion-deportiva { position: fixed; inset: 0; z-index: 4100; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(5,10,19,.88); backdrop-filter: blur(7px); }
#modal-gestion-deportiva[hidden] { display: none; }
#modal-gestion-deportiva .ventana-historial { width: 100%; max-width: 640px; max-height: 85dvh; overflow-y: auto; box-sizing: border-box; }
#gestion-deportiva-lista .fila-gestion-jugador, #gestion-deportiva-lista .fila-gestion-actividad { flex-wrap: wrap; gap: 12px; }
#gestion-deportiva-lista .informacion-actividad { flex: 1 1 180px; min-width: 0; overflow-wrap: anywhere; }
#gestion-deportiva-lista button { min-height: 44px; width: auto; padding: 10px 12px; }
.gestion-deportiva-acciones, .zona-gestionar-actividades { display: flex; flex-wrap: wrap; gap: 10px; }
html[data-deporte-remoto] #modal-editores select { width: 100%; padding: 12px; border: 1px solid #45536b; border-radius: 10px; background: #29394c; color: white; font: inherit; }
html[data-deporte-remoto] .ventana-editor { max-height: 85dvh; }
html[data-deporte-remoto] #modal-editores button { min-height: 44px; }
.catalogo-basico-opcion { display: flex; align-items: center; gap: 10px; }
.catalogo-basico-opcion input[type="checkbox"] { width: auto; min-width: 20px; height: 20px; margin: 0; }
/* Registro grupal: ventana y paleta originales; selección táctil por persona. */
html[data-deporte-remoto] body.registro-abierto { overflow: hidden; }
html[data-deporte-remoto] #modal-actividad { z-index: 4200; box-sizing: border-box; top: var(--registro-top, 0px); bottom: auto; height: var(--registro-alto, 100dvh); padding: 12px; }
html[data-deporte-remoto] #modal-actividad .ventana-historial { display: flex; flex-direction: column; width: 100%; min-width: 0; max-width: 540px; max-height: 100%; overflow: hidden; box-sizing: border-box; padding: 16px 16px max(12px, env(safe-area-inset-bottom)); }
html[data-deporte-remoto] #modal-actividad .cabecera-historial { flex-shrink: 0; }
#form-registro-actividad { display: flex; flex-direction: column; min-height: 0; min-width: 0; }
.registro-cuerpo { min-height: 0; min-width: 0; overflow-y: auto; overscroll-behavior-y: contain; -webkit-overflow-scrolling: touch; scrollbar-gutter: stable; padding-right: 4px; }
#registro-campos { display: flex; flex-direction: column; margin: 0; padding: 0; border: 0; min-width: 0; min-height: 0; }
#registro-campos > :not(.registro-jugadores) { flex-shrink: 0; }
#registro-campos > label { display: block; font-weight: 700; margin: 14px 0 8px; }
#registro-campos > input, #registro-campos > select { width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; min-height: 46px; }
#registro-buscar[hidden] { display: none !important; }
.registro-recompensas { display: flex; flex-wrap: wrap; gap: 10px 20px; padding: 16px; margin: 16px 0; border: 1px solid var(--borde); border-radius: 12px; background: var(--superficie-alta); }
.registro-recompensas strong { font-family: var(--fuente-titulos); font-size: 25px; overflow-wrap: anywhere; }
.registro-recompensas small { flex-basis: 100%; color: var(--texto-secundario); font-size: 11px; }
.registro-ec { color: var(--oro); }
.registro-seleccion-acciones { display: flex; gap: 8px; margin: 12px 0; }
.registro-seleccion-acciones button { min-height: 44px; padding: 8px 14px; }
.registro-jugadores { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; min-width: 0; }
.registro-persona { display: flex; align-items: center; gap: 12px; padding: 12px; min-height: 48px; min-width: 0; box-sizing: border-box; border: 1px solid var(--borde); border-radius: 12px; cursor: pointer; }
.registro-persona.seleccionada { border-color: var(--verde); background: rgba(183,243,75,.08); }
.registro-persona input[type="checkbox"] { width: 20px; height: 20px; min-width: 20px; margin: 0; accent-color: var(--verde); }
.registro-persona .informacion-actividad { min-width: 0; overflow-wrap: anywhere; }
.registro-persona small { color: var(--texto-secundario); }
.registro-avatar { display: grid; place-items: center; width: 36px; height: 36px; flex-shrink: 0; border-radius: 50%; background: var(--superficie-alta); color: var(--verde); font-weight: bold; }
.registro-confirmar { display: flex; flex-wrap: wrap; flex-shrink: 0; gap: 10px; padding-top: 8px; }
.registro-confirmar button { flex: 1 1 180px; min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere; min-height: 48px; }
.registro-seleccion-resumen { flex-shrink: 0; max-height: 3em; overflow-y: auto; overflow-wrap: anywhere; margin: 10px 0; }
#registro-estado { flex-shrink: 0; max-height: 4.5em; overflow-y: auto; margin: 6px 0; }
#registro-estado:empty { display: none; }
#registro-resultado:not(:empty) { padding: 14px; color: var(--verde); border: 1px solid var(--borde); border-radius: 12px; }
.deporte-conexion { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-bottom: 12px; }
.deporte-conexion span { flex: 1 1 180px; color: var(--texto-secundario); font-size: 13px; }
.deporte-conexion button { min-height: 44px; }
#selector-perfil-remoto { width: 100%; min-width: 0; min-height: 46px; margin-bottom: 24px; }
.feed-compositor { margin: 18px 0 10px; }
.feed-compositor label { display: block; margin-bottom: 8px; font-weight: 700; }
.feed-compositor textarea { width: 100%; box-sizing: border-box; min-width: 0; min-height: 92px; resize: vertical; }
.feed-compositor-acciones, .feed-acciones { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.feed-compositor-acciones { justify-content: space-between; margin-top: 10px; }
.feed-compositor-acciones small { color: var(--texto-secundario); }
.feed-compositor-acciones button, .feed-acciones button, #feed-mas, #feed-actualizar { min-height: 44px; max-width: 100%; white-space: normal; }
#feed-lista { margin: 18px 0; min-width: 0; }
#feed-lista .noticia-contenido-erasmus { overflow-wrap: anywhere; }
#feed-lista .feed-publicacion-texto { white-space: pre-wrap; }
.feed-acciones { margin: 12px 0; }
#feed-lista details { margin-bottom: 10px; }
.feed-imagen { display: block; width: 100%; max-width: 100%; max-height: 520px; height: auto; object-fit: contain; border-radius: 14px; }
.feed-foto-contenedor { margin: 12px 0; min-width: 0; }
#feed-vista-previa { margin: 12px 0; }
#feed-vista-previa .feed-imagen { max-height: 280px; margin-bottom: 8px; }
.feed-reacciones { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.feed-reacciones button { min-width: 44px; min-height: 44px; padding: 8px 10px; font-size: 1rem; }
.feed-reacciones button[aria-pressed="true"] { border-color: #b7f34b; background: #b7f34b20; color: #b7f34b; }
.feed-comentarios { border-top: 1px solid #3a4e68; margin-top: 12px; padding-top: 12px; min-width: 0; }
.feed-comentario { display: flex; gap: 10px; margin: 12px 0; min-width: 0; }
.feed-comentario-avatar { width: 32px; height: 32px; flex: 0 0 32px; border-radius: 50%; background: #30435b; display: grid; place-items: center; overflow: hidden; }
.feed-comentario-avatar img { width: 100%; height: 100%; object-fit: cover; }
.feed-comentario-cuerpo { min-width: 0; flex: 1; }
.feed-comentario-cuerpo time { display: block; }
.feed-comentario-cuerpo p { margin: 6px 0; }
.feed-comentario-cuerpo button { min-height: 44px; max-width: 100%; white-space: normal; }
.feed-comentario-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; }
.feed-comentario-form textarea { width: 100%; min-width: 0; box-sizing: border-box; resize: vertical; min-height: 72px; }
.feed-comentario-form button { min-height: 44px; max-width: 100%; }
.feed-comentario-estado { overflow-wrap: anywhere; }
#productos-tienda, #inventario-tienda, #historial-compras, #lista-gestion-productos { display: grid; gap: 12px; min-width: 0; }
#vista-tienda .producto-tienda, #lista-gestion-productos .fila-gestion-producto { min-width: 0; flex-wrap: wrap; }
#vista-tienda .producto-tienda p, #lista-gestion-productos p { margin: 4px 0; overflow-wrap: anywhere; }
#vista-tienda button, #modal-gestion-productos button { min-height: 44px; max-width: 100%; white-space: normal; }
#saldo-tienda { color: var(--oro); font-weight: 700; }
#rotacion-tienda { font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
#modal-gestion-productos[hidden] { display: none; }
#modal-gestion-productos .ventana-historial { max-height: 85dvh; overflow-y: auto; max-width: min(640px, 100%); box-sizing: border-box; }
#lista-gestion-productos { margin-top: 16px; }
.tienda-imagen img, .tienda-editor-foto img { display: block; width: 100%; max-width: 100%; max-height: 240px; object-fit: contain; border-radius: 12px; }
.tienda-imagen { min-width: 0; margin-bottom: 8px; }
.tienda-editor-foto { min-width: 0; margin-top: 14px; }
.tienda-editor-foto input { max-width: 100%; box-sizing: border-box; }
.compra-tienda .tienda-imagen { max-width: 96px; }
#modal-bienvenida-liga { position: fixed; top: var(--bienvenida-top, 0px); left: 0; right: 0; height: min(var(--bienvenida-alto, 100dvh),100dvh); z-index: 4300; display: flex; align-items: center; justify-content: center; box-sizing: border-box; padding: 12px; background: rgba(5,10,19,.88); backdrop-filter: blur(7px); }
#modal-bienvenida-liga[hidden] { display: none; }
#modal-bienvenida-liga .ventana-historial { display: flex; flex-direction: column; box-sizing: border-box; max-width: 560px; max-height: 100%; overflow: visible; padding: 18px; min-width: 0; }
#modal-bienvenida-liga .cabecera-historial { flex: 0 0 auto; gap: 10px; margin-bottom: 8px; }
#modal-bienvenida-liga .cabecera-historial > div { min-width: 0; }
#modal-bienvenida-liga h2 { font-size: clamp(21px,6vw,29px); margin: 7px 0; overflow-wrap: anywhere; }
#modal-bienvenida-liga .etiqueta-seccion-erasmus { font-size: 9px; }
#bienvenida-liga-cerrar { flex: 0 0 44px; min-width: 44px; }
#bienvenida-liga-cuerpo { overflow-y: auto; min-height: 0; min-width: 0; overscroll-behavior: contain; padding-right: 4px; }
#bienvenida-liga-cuerpo .producto-tienda, #bienvenida-liga-cuerpo .funcion-proxima { margin: 10px 0; }
#bienvenida-liga-cuerpo p, #bienvenida-liga-cuerpo h4 { overflow-wrap: anywhere; }
#bienvenida-liga-cuerpo h4 { margin: 6px 0; }
.bienvenida-rotacion { font-variant-numeric: tabular-nums; font-size: 13px; }
.bienvenida-liga-acciones { display: flex; flex-wrap: wrap; gap: 8px; flex: 0 0 auto; padding-top: 12px; padding-bottom: env(safe-area-inset-bottom); }
.bienvenida-liga-acciones button { flex: 1 1 130px; margin: 0; }
#modal-bienvenida-liga button { min-height: 44px; max-width: 100%; white-space: normal; }
@media (prefers-reduced-motion: reduce) { #modal-bienvenida-liga .ventana-historial { animation: none; } }
@media (max-width: 430px) { #feed-lista .noticia-erasmus { gap: 10px; padding: 14px; } #feed-lista .noticia-icono-erasmus { width: 36px; height: 36px; flex: 0 0 36px; } }
#retos-lista .funcion-proxima { margin-top: 12px; }
#retos-lista .reto-cuerpo { min-width: 0; flex: 1; overflow-wrap: anywhere; }
#retos-lista .reto-cuerpo h3 { margin: 0 0 8px; font-family: "Rajdhani", sans-serif; font-size: 22px; }
#retos-lista .reto-cuerpo p { white-space: pre-wrap; margin-bottom: 12px; font-size: 13px; }
#retos-lista .dashboard-estado { margin: 12px 0; }
#retos-lista button, #retos-crear, #retos-actualizar { min-height: 44px; max-width: 100%; white-space: normal; }
#retos-lista details { margin: 12px 0; font-size: 13px; }
#retos-lista details p { margin: 10px 0; }
#retos-estado { overflow-wrap: anywhere; }
#retos-ajustes, .reto-multiplicadores button { min-height: 44px; }
.reto-destinatario { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--borde); }
.reto-destinatario button { margin-top: 8px; }
.reto-multiplicadores { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.reto-multiplicadores button { flex: 1 1 64px; margin: 0; }
#form-editor-erasmus .registro-persona { display: flex; }
#form-editor-erasmus .registro-persona input[type="checkbox"] { width: 20px; min-width: 20px; height: 20px; padding: 0; margin: 0; }
#form-editor-erasmus .registro-jugadores { margin-top: 12px; }
#apuestas-lista .funcion-proxima { margin-top: 12px; }
.apuesta-cuerpo { min-width: 0; flex: 1; overflow-wrap: anywhere; }
.apuesta-cuerpo h3 { margin: 0 0 10px; font-family: "Rajdhani", sans-serif; font-size: 22px; }
.apuesta-cuerpo p, .apuestas-reglas p { font-size: 13px; line-height: 1.6; white-space: pre-wrap; }
.apuesta-cuerpo .dashboard-estado { margin: 12px 0; }
.apuesta-cuerpo button, #apuestas-crear, #apuestas-actualizar { min-height: 44px; max-width: 100%; white-space: normal; }
.apuesta-cuerpo details { margin-top: 14px; font-size: 13px; }
#apuestas-estado, #apuestas-saldo, .apuestas-reglas { overflow-wrap: anywhere; }
#contenido-perfil-remoto { min-width: 0; }
#contenido-perfil-remoto .cabecera-perfil { flex-wrap: wrap; }
#contenido-perfil-remoto .info-perfil { min-width: 140px; overflow-wrap: anywhere; }
#contenido-perfil-remoto .redes-perfil a { min-height: 44px; box-sizing: border-box; max-width: 100%; overflow-wrap: anywhere; }
:is(#perfil-editor-campos, #perfil-onboarding-campos) { border: 0; padding: 0; margin: 0; min-width: 0; }
:is(#perfil-editor-campos, #perfil-onboarding-campos) input, :is(#perfil-editor-campos, #perfil-onboarding-campos) textarea { width: 100%; min-width: 0; box-sizing: border-box; }
:is(#perfil-editor-campos, #perfil-onboarding-campos) label { display: block; margin: 14px 0 6px; }
body.onboarding-activo .acceso-layout, body.onboarding-activo .cabecera-principal-erasmus, body.onboarding-activo #aplicacion { display: none !important; }
#perfil-onboarding { max-width: 540px; margin: 12px auto; min-width: 0; }
#perfil-onboarding[hidden] { display: none; }
#perfil-onboarding .ventana-perfil-completo { max-height: none; max-width: none; overflow: visible; box-sizing: border-box; width: 100%; }
#perfil-onboarding h2 { margin-top: 0; font-family: var(--fuente-titulos); font-size: 30px; }
#perfil-onboarding .cabecera-perfil { flex-wrap: wrap; margin-top: 22px; }
#perfil-onboarding .acciones-editor-perfil { flex-wrap: wrap; }
#perfil-onboarding button { min-height: 48px; white-space: normal; }
#onboarding-estado { overflow-wrap: anywhere; }
body.onboarding-activo { padding-bottom: max(24px, env(safe-area-inset-bottom)); }
html[data-deporte-remoto] #modal-perfil-completo { top: var(--perfil-top, 0px); bottom: auto; height: var(--perfil-alto, 100dvh); box-sizing: border-box; padding-bottom: max(16px, env(safe-area-inset-bottom)); }
html[data-deporte-remoto] .panel-menu-foto button { min-height: 44px; }
html[data-deporte-remoto] .acciones-editor-perfil button { min-height: 48px; min-width: 0; white-space: normal; }
html[data-deporte-remoto] #modal-perfil-completo .ventana-perfil-completo { box-sizing: border-box; min-width: 0; max-height: 100%; }
@media (max-height: 480px) {
  html[data-deporte-remoto] #modal-actividad { padding: 4px; }
  html[data-deporte-remoto] #modal-actividad .ventana-historial { padding: 8px 12px max(8px, env(safe-area-inset-bottom)); }
  html[data-deporte-remoto] #modal-actividad .cabecera-historial { margin-bottom: 4px; }
  html[data-deporte-remoto] #modal-actividad h2 { font-size: 19px; }
  #registro-estado { max-height: 2.5em; }
}
html[data-deporte-remoto] .jugador { min-width: 0; flex-wrap: wrap; }
html[data-deporte-remoto] .jugador strong, html[data-deporte-remoto] .nombre-jugador { overflow-wrap: anywhere; }
html[data-deporte-remoto] #deporte-actividades .fila-gestion-actividad { overflow-wrap: anywhere; }
#animacion-puntos .numero-animado small { display: block; font-size: 14px; font-weight: 600; max-width: 280px; }
@media (prefers-reduced-motion: reduce) { html[data-deporte-remoto] #animacion-puntos { display: none; } }
/* Remote achievements retain the original map; containment only affects the authenticated app. */
body:has(#aplicacion) #modal-mapa-logros .ventana-mapa-logros,
body:has(#aplicacion) #modal-gestion-logros .ventana-gestion-logros {
  max-width: min(1100px, calc(100vw - 24px)); max-height: calc(100dvh - 24px);
  min-width: 0; overflow: auto; box-sizing: border-box;
  padding-bottom: max(20px, env(safe-area-inset-bottom));
}
body:has(#aplicacion) .cabecera-mapa-logros,
body:has(#aplicacion) .cabecera-gestion-logros { position: sticky; top: 0; z-index: 4; background: #101827; }
body:has(#aplicacion) .scroll-mapa-logros { max-width: 100%; min-width: 0; touch-action: pan-x pan-y; }
body:has(#aplicacion) #lineas-mapa-logros { width: 100%; height: 100%; }
body:has(#aplicacion) .zona-mapa-logros { height: calc(100% - 40px); }
.nodo-logro-disponible { border-style: dashed; border-color: var(--color-logro); filter: none; opacity: 1; }
.logro-dependencias { display: grid; gap: 8px; max-height: 220px; overflow-y: auto; }
.logro-dependencias label { display: flex; align-items: center; gap: 12px; min-height: 44px; }
.logro-dependencias input[type=checkbox] { width: 24px; height: 24px; flex: 0 0 24px; }
.distintivo-logro-perfil { display: inline-block; margin: 4px; padding: 8px 12px; border: 1px solid var(--verde); border-radius: 20px; }
body:has(#aplicacion) #form-gestion-logros input,
body:has(#aplicacion) #form-gestion-logros select,
body:has(#aplicacion) #form-gestion-logros textarea { box-sizing: border-box; max-width: 100%; min-height: 44px; }
@media (prefers-reduced-motion: reduce) {
  body:has(#aplicacion) .nodo-logro,body:has(#aplicacion) .linea-logro-activa { animation: none !important; transition: none !important; }
}
/* Progress uses the original modal, typography and neon palette; the world is a moving window. */
#modal-progreso { position:fixed;inset:0;z-index:11500;display:flex;align-items:center;justify-content:center;padding:12px;background:rgba(5,10,19,.9);box-sizing:border-box; }
#modal-progreso[hidden] { display:none; }
#modal-progreso .progreso-ventana { width:min(1320px,100%);max-width:1320px;height:min(900px,calc(100dvh - 24px));max-height:100%;display:flex;flex-direction:column;gap:10px;min-width:0;padding:20px;box-sizing:border-box;background:#101827;border:1px solid #3b505b;box-shadow:0 0 60px #b7f34b12;overflow:auto; }
#modal-progreso .cabecera-historial { flex:0 0 auto;margin:0;gap:12px;position:sticky;top:0;z-index:8;background:#101827; }
#modal-progreso .cabecera-historial p { margin:4px 0 0;font-size:12px;color:#adbccf; }
#modal-progreso h2 { margin:3px 0;font-size:26px; }
#progreso-cerrar { flex:0 0 44px;min-height:44px; }
.progreso-controles { display:flex;flex-wrap:wrap;gap:8px;align-items:center; }
.progreso-controles button,.progreso-controles select,.progreso-pie button { min-height:44px;margin:0;max-width:100%; }
.progreso-controles select { flex:1;min-width:160px;width:auto;background:#1d2a3b;color:#edf6ff;border:1px solid #41536b;border-radius:12px;padding:10px; }
#progreso-estado { min-height:0;margin:0;color:#b8c9db;font-size:13px; }
#progreso-estado:empty { display:none; }
.progreso-escena { flex:1;min-height:160px;position:relative;border:1px solid #375057;border-radius:22px;overflow:hidden;background:#0b1422;isolation:isolate; }
#progreso-viewport { width:100%;height:100%;overflow:auto;position:relative;overscroll-behavior:contain;scrollbar-color:#b7f34b #152033;scrollbar-width:thin;cursor:grab;touch-action:pan-x pan-y; }
#progreso-viewport.arrastrando { cursor:grabbing;user-select:none; }
#progreso-mundo { position:relative;background:radial-gradient(circle at center,#17383e55 0,transparent 65%),repeating-linear-gradient(0deg,transparent 0 47px,#7eabc008 47px 48px),repeating-linear-gradient(90deg,transparent 0 47px,#7eabc008 47px 48px); }
.progreso-carretera { position:absolute;pointer-events:none;background:linear-gradient(90deg,transparent,#36583c33 18%,#152a2a 50%,#36583c33 82%,transparent);border-inline:1px solid #b7f34b22; }
[data-orientacion=vertical] .progreso-carretera { width:160px;height:100%;left:50%;transform:translateX(-50%); }
[data-orientacion=horizontal] .progreso-carretera { width:100%;height:160px;top:50%;transform:translateY(-50%);background:linear-gradient(0deg,transparent,#36583c33 18%,#152a2a 50%,#36583c33 82%,transparent);border-block:1px solid #b7f34b22; }
.progreso-carretera::after { content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 32px,#b7f34b45 32px 46px);width:2px;margin:auto; }
[data-orientacion=horizontal] .progreso-carretera::after { width:100%;height:2px;background:repeating-linear-gradient(90deg,transparent 0 32px,#b7f34b45 32px 46px); }
.progreso-hito { position:absolute;transform:translate(-50%,-50%);box-sizing:border-box;pointer-events:none;text-align:center;z-index:1;color:#b0c4d6; }
#progreso-jugadores { position:absolute;inset:0;z-index:3;pointer-events:none; }
#progreso-jugadores .progreso-jugador { pointer-events:auto; }
.progreso-conector { position:absolute;z-index:0;opacity:.5;pointer-events:none; }
/* Fixed friends occupy their own gutters, never the milestone viewport. */
#modal-progreso .progreso-escena { display:grid;gap:6px;padding:6px;box-sizing:border-box; }
#modal-progreso #progreso-viewport { min-width:0;min-height:0;box-sizing:border-box; }
#modal-progreso .progreso-lejanos { position:static;transform:none;box-sizing:border-box;max-width:100%; }
#modal-progreso[data-orientacion=vertical] .progreso-escena { grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto; }
#modal-progreso[data-orientacion=vertical] #progreso-viewport { grid-row:2;grid-column:1; }
#modal-progreso[data-orientacion=vertical] #progreso-delante { grid-row:1;grid-column:1;transform:none;width:100%; }
#modal-progreso[data-orientacion=vertical] #progreso-atras { grid-row:3;grid-column:1;transform:none;width:100%; }
#modal-progreso[data-orientacion=horizontal] .progreso-escena { grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:minmax(0,1fr); }
#modal-progreso[data-orientacion=horizontal] #progreso-viewport { grid-row:1;grid-column:2; }
#modal-progreso[data-orientacion=horizontal] #progreso-delante { grid-row:1;grid-column:3;transform:none;width:180px;align-self:center;flex-wrap:wrap; }
#modal-progreso[data-orientacion=horizontal] #progreso-atras { grid-row:1;grid-column:1;transform:none;width:180px;align-self:center;flex-wrap:wrap; }
#modal-progreso[data-orientacion=horizontal] .progreso-lejanos select { max-width:100%;flex-basis:100%; }
#modal-progreso .progreso-hito { color:var(--color-rango);border-color:var(--color-rango); }
#modal-progreso .progreso-monolito { min-height:42px;padding:12px 8px;border-radius:12px;background:linear-gradient(140deg,color-mix(in srgb,var(--color-rango) 12%,#162237),#101b2d); }
#modal-progreso .progreso-hito-mayor { background:linear-gradient(140deg,color-mix(in srgb,var(--color-rango) 22%,#162237),#101b2d);box-shadow:0 0 20px color-mix(in srgb,var(--color-rango) 18%,transparent); }
#modal-progreso .progreso-hito.conquistado { border-color:var(--color-rango);color:var(--color-rango); }
#modal-progreso .progreso-salida { border-width:2px; }
#modal-progreso .progreso-hito-mayor { z-index:2; }
#modal-progreso[data-orientacion=vertical] .progreso-hito { max-width:128px;white-space:normal;overflow-wrap:anywhere; }
.progreso-negativo { font-size:9px!important;color:#ffc3c3!important; }
.progreso-marca { font-size:10px;white-space:nowrap;padding:3px 9px;border-top:1px solid #688b9866; }
.progreso-monolito,.progreso-hito-mayor { width:132px;min-height:80px;padding:10px 8px;background:linear-gradient(140deg,#26394d,#101b2d);border:1px solid #708ba5;border-radius:20px 20px 7px 7px;box-shadow:0 6px 22px #0006; }
.progreso-hito-mayor { width:144px;min-height:108px;border-color:#ad9deb;background:linear-gradient(145deg,#352c55,#131c30);box-shadow:0 0 22px #ab81ff22,inset 0 0 22px #aa8dff12; }
.progreso-emblema { display:block;font-size:23px;line-height:1.2; }
.progreso-hito-mayor .progreso-emblema { font-size:32px; }
.progreso-hito strong { display:block;font-family:var(--fuente-titulos);font-size:15px;color:#f1edff;line-height:1.1;margin:3px 0;overflow-wrap:anywhere; }
.progreso-rp { display:block;font-size:11px;font-variant-numeric:tabular-nums; }
[data-orientacion=horizontal] .progreso-marca { width:1px;height:10px;border-top:0;border-left:1px solid #688b9888;padding:0; }
[data-orientacion=horizontal] .progreso-marca .progreso-rp { display:none; }
.progreso-monolito .progreso-rp,.progreso-hito-mayor .progreso-rp { overflow-wrap:anywhere; }
.progreso-hito.conquistado { border-color:#b7f34b;color:#d0f58b; }
.progreso-monolito.conquistado,.progreso-hito-mayor.conquistado { background:linear-gradient(150deg,#34512c,#14262a);box-shadow:0 0 25px #b7f34b2b; }
.progreso-jugador,.progreso-indicador { --neon:#b7f34b;display:flex;align-items:center;gap:7px;color:#f3f8ff;background:#101c2de8;border:1px solid color-mix(in srgb,var(--neon) 45%,#28364a);border-radius:16px;padding:5px;box-sizing:border-box;box-shadow:0 3px 15px #0005; }
.progreso-jugador { position:absolute;transform:translate(-50%,-50%);flex-direction:column;width:100px;min-height:86px;z-index:3;margin:0; }
.progreso-avatar { display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;border:2px solid var(--neon);border-radius:50%;background:#243248;color:#fff;font-family:var(--fuente-titulos);font-size:22px;box-shadow:0 0 12px color-mix(in srgb,var(--neon) 65%,transparent);overflow:hidden; }
.progreso-avatar img { width:100%;height:100%;object-fit:cover; }
.progreso-jugador-info { display:flex;flex-direction:column;gap:2px;min-width:0;max-width:100%; }
.progreso-jugador-info strong { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#fff; }
.progreso-jugador-info>span { font-size:10px;color:#d3dfeb;overflow-wrap:anywhere;font-variant-numeric:tabular-nums; }
.progreso-lejanos { position:absolute;z-index:6;display:flex;align-items:center;gap:6px;max-width:calc(100% - 16px);padding:5px;background:#162334f5;border:1px solid #51657b;border-radius:16px;box-shadow:0 5px 20px #0007; }
.progreso-lejanos[hidden] { display:none; }
.progreso-indicador { flex:1;min-width:0;min-height:48px;margin:0; }
.progreso-indicador .progreso-avatar { width:36px;height:36px;flex-basis:36px; }
.progreso-lejanos select { width:100px;max-width:32%;min-height:44px;border-radius:10px;background:#1b2b40;color:white;border:1px solid #566779;font-size:11px; }
.progreso-cantidad { color:#d3ed9f;font-size:12px;white-space:nowrap; }
[data-orientacion=vertical] #progreso-delante { top:8px;left:50%;transform:translateX(-50%);width:360px; }
[data-orientacion=vertical] #progreso-atras { bottom:8px;left:50%;transform:translateX(-50%);width:360px; }
[data-orientacion=horizontal] #progreso-delante { right:8px;top:12px;width:235px; }
[data-orientacion=horizontal] #progreso-atras { left:8px;bottom:12px;width:235px; }
.progreso-pie { display:flex;align-items:center;justify-content:space-between;gap:8px; }
#progreso-coordenada { font-size:13px;font-weight:bold;color:#d0f58b;text-align:center;overflow-wrap:anywhere;font-variant-numeric:tabular-nums; }
.progreso-ayuda { margin:0;font-size:11px;color:#a5b7c9;text-align:center; }
#campo-color-neon { min-height:44px;max-width:100%;padding:4px; }
@media(max-width:719px) {
 #modal-progreso { padding:6px; }
 #modal-progreso .progreso-ventana { padding:12px;gap:8px;height:calc(100dvh - 12px);border-radius:18px; }
 #modal-progreso h2 { font-size:23px; }
 #modal-progreso .etiqueta-seccion-erasmus { font-size:9px; }
 .progreso-controles { gap:6px; }
 .progreso-controles button { flex:1;padding:8px;font-size:12px; }
 .progreso-controles select { flex-basis:100%;padding:7px;min-height:40px; }
 .progreso-pie button { font-size:11px;padding:8px; }
}
@media(prefers-reduced-motion:reduce) { #modal-progreso *,#modal-progreso *::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; } }

/* Members reuse the join dialog and original management header. Native focus/ESC. */
.tarjeta-liga-grupo { display: grid; gap: 8px; min-width: 0; }
.tarjeta-liga-grupo > button { width: 100%; min-height: 44px; }
#dialogo-miembros #panel-miembros { margin: 0; padding: 20px; min-width: 0; border: 0; background: transparent; overflow-wrap: anywhere; }
#dialogo-miembros .cabecera-historial { position: sticky; top: -1px; z-index: 1; background: #18283d; padding: 8px 0; gap: 12px; }
#dialogo-miembros .cabecera-historial h3 { margin: 0; min-width: 0; }
#dialogo-miembros #miembros-cerrar { flex-shrink: 0; min-height: 44px; }
#dialogo-miembros :is(button,select,input) { min-height: 44px; max-width: 100%; }
#dialogo-miembros #panel-miembros { padding-bottom: max(20px, env(safe-area-inset-bottom)); }
