/* TrailLab v290 · la pantalla de «Tu gente», legible de verdad
   ==========================================================================================
   Pedido por Oli: subir el feed al menú principal, darle barra lateral con contexto, dejar el
   centro más ancho para las sesiones de los amigos y que las tarjetas se lean «muy muy» bien.

   Lo que estaba mal, y no era el tamaño de la letra
   ------------------------------------------------
   El feed pintaba cada salida como una fila apretada con cuatro pastillas: «12,4 km · 540 m ·
   1h 22m · 6:35». Todas del mismo tamaño, todas del mismo gris, y ninguna decía qué era. Para
   saber que la tercera es el tiempo hay que leer la unidad; o sea que para enterarte de si tu
   amigo hizo una tirada larga tenías que descifrar cuatro cápsulas seguidas. En un feed, donde se
   pasa de largo, eso es no enterarse de nada.

   El arreglo es jerarquía, no tamaño: **una cosa grande por tarjeta y el resto en su sitio**. El
   número va grande y su etiqueta debajo, como en la ficha de sesión — mismo orden y mismas
   palabras a propósito, para poder comparar de un vistazo con tu propio historial.

   El ancho
   --------
   Antes, la lista ocupaba el ancho de la vista y las tarjetas quedaban larguísimas y bajitas: el
   ojo tenía que recorrer 1.400 px para leer una línea de 40 caracteres. Ahora hay dos columnas: el
   contexto —qué se ve y qué no— se va a un raíl estrecho y las tarjetas viven en una columna con
   medida legible. En móvil vuelve a una sola columna y el raíl baja al final: ahí el contexto no
   puede robarle sitio a lo que se viene a ver. */

.feed-shell-v290 {
  display: grid;
  grid-template-columns: 252px minmax(460px, 1fr) 268px;
  align-items: start;
  gap: 18px;
}

/* La columna de tarjetas. `min-width:0` porque un hijo de rejilla no encoge por debajo de su
   contenido sin él, y una sola tarjeta ancha desbordaría la columna entera. */
.feed-shell-v290 > .fd-center {
  min-width: 0;
}

.feed-shell-v290 > .fd-news,
.feed-shell-v290 > .fd-rail {
  position: sticky;
  top: 14px;
  display: grid;
  gap: 12px;
  min-width: 0;
}

/* ------------------------------------------------------------------------ el raíl de contexto */
.feed-shell-v290 > .fd-news { align-content: start; }
.fd-rail-card {
  padding: 14px 15px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface);
}
.fd-rail-card h4 {
  margin: 0 0 9px;
  font-size: var(--tl-type-kicker, 12px);
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--muted);
}
.fd-rail-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.fd-rail-list li {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 8px;
  align-items: start;
  font-size: var(--tl-type-kicker, 12px);
  line-height: 1.45;
  color: var(--muted);
}
.fd-rail-list li b { color: var(--ink); font-weight: 800; }
.fd-rail-list li > span { font-size: var(--tl-type-meta, 13px); line-height: 1.3; }

/* La tarjeta de privacidad se distingue sin gritar: un filo de color y nada más. Decir «esto NO se
   ve» es lo que da confianza para usar la pantalla, así que tiene que leerse como una promesa, no
   como una advertencia de error. */
.fd-rail-privacy {
  border-color: rgba(61, 211, 176, .3);
  background: linear-gradient(160deg, rgba(61, 211, 176, .07), var(--surface));
}
.fd-rail-note {
  margin: 10px 0 0;
  padding-top: 9px;
  border-top: 1px solid var(--line);
  font-size: var(--tl-type-kicker, 12px);
  line-height: 1.5;
  color: var(--muted);
}
.fd-rail-actions { display: grid; gap: 7px; }
.fd-rail-actions button { width: 100%; }

/* ------------------------------------------------------------------------------- las tarjetas */
.feed-v280 .fd-day { gap: 11px; }
.feed-v280 .fd-day h3 { font-size: var(--tl-type-kicker, 12px); }

/* La fila de v280 era `grid-template-columns:auto 1fr`; ahora la tarjeta es una pila: cabecera
   arriba y métricas debajo. Se anula la rejilla vieja en vez de editar v280.css, que va
   cache-first y cuyo nombre no cambia entre versiones. */
.feed-v280 .fd-item {
  display: block;
  padding: 0;
  border-radius: 16px;
  background: var(--surface);
  overflow: hidden;
  transition: border-color .15s ease, transform .15s ease;
}
.feed-v280 .fd-item:hover { transform: translateY(-1px); }

.feed-v280 .fd-visual {
  position: relative;
  aspect-ratio: 2.9 / 1;
  min-height: 150px;
  overflow: hidden;
  background: #082a24;
}
.feed-v280 .fd-visual svg { display: block; width: 100%; height: 100%; }
.feed-v280 .fd-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(2, 14, 11, .72));
  pointer-events: none;
}
.feed-v280 .fd-visual-label {
  position: absolute;
  z-index: 2;
  left: 14px;
  bottom: 11px;
  color: #eaf7f2;
  font-size: var(--tl-type-kicker, 12px);
  font-weight: 750;
  letter-spacing: .04em;
}
.feed-v280 .fd-demo-label {
  position: absolute;
  z-index: 2;
  right: 12px;
  top: 11px;
  padding: 5px 9px;
  border-radius: 999px;
  background: #ffcc3d;
  color: #1d1700;
  font-size: var(--tl-type-kicker, 12px);
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.feed-v280 .fd-demo { border-color: color-mix(in srgb, #ffcc3d 54%, var(--line)); }
.feed-v280 .fd-demo-intro {
  margin-bottom: 11px;
  padding: 15px 17px;
  border: 1px solid color-mix(in srgb, var(--lime) 36%, var(--line));
  border-radius: 15px;
  background: linear-gradient(145deg, color-mix(in srgb, var(--lime) 8%, var(--surface)), var(--surface));
}
.feed-v280 .fd-demo-intro > span,
.fd-news-head > span,
.fd-news-card > span {
  color: var(--teal);
  font-size: var(--tl-type-kicker, 12px);
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.feed-v280 .fd-demo-intro h3 { margin: 4px 0 3px; font-size: var(--tl-type-card-title, 16px); }
.feed-v280 .fd-demo-intro p { margin: 0; color: var(--muted); font-size: var(--tl-type-kicker, 12px); line-height: 1.45; }
.feed-v280 .fd-safe { display: flex; align-items: flex-start; gap: 7px; }
.feed-v280 .fd-safe .tl-icon { flex: none; width: 16px; height: 16px; margin-top: 1px; color: var(--teal); }

.feed-v280 .fd-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 13px 15px;
  border-bottom: 1px solid var(--line);
}
.feed-v280 .fd-av { width: 44px; height: 44px; border-radius: 13px; }
.feed-v280 .fd-av-e { font-size: var(--tl-type-subsection, 20px); }
.feed-v280 .fd-main { gap: 2px; }
.feed-v280 .fd-who b { font-size: var(--tl-type-body, 15px); font-weight: 850; }
.feed-v280 .fd-ttl {
  font-size: var(--tl-type-meta, 13px);
  line-height: 1.35;
  color: var(--muted);
  font-weight: 600;
}
.feed-v280 .fd-sport {
  align-self: start;
  padding: 4px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface2);
  font-size: var(--tl-type-kicker, 12px);
  font-weight: 850;
  white-space: nowrap;
  color: var(--muted);
}

/* Las métricas: el número manda y la etiqueta acompaña. `auto-fit` con un mínimo hace que en una
   columna estrecha pasen de cuatro a dos por fila sin una sola media query. */
.feed-v280 .fd-mx {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
}
.feed-v280 .fd-stat {
  padding: 12px 10px;
  text-align: center;
  border-right: 1px solid var(--line);
}
.feed-v280 .fd-stat:last-child { border-right: 0; }
.feed-v280 .fd-stat b {
  display: block;
  font-family: var(--tl-font-display, inherit);
  font-size: var(--tl-type-subsection, 20px);
  line-height: 1.1;
  color: var(--ink);
  letter-spacing: .01em;
}
.feed-v280 .fd-stat small {
  display: block;
  margin-top: 3px;
  font-size: var(--tl-type-kicker, 12px);
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--muted);
}

/* --------------------------------------------------------------------------------- una columna */
/* El corte es 1000px y no 760: con el raíl de 268px, por debajo de mil la columna de tarjetas se
   queda en unos 700 y las cuatro métricas empiezan a apretarse. */
@media (max-width: 1000px) {
  .feed-shell-v290 {
    grid-template-columns: 1fr;
  }
  /* El raíl pasa al final: en móvil se viene a ver las salidas, no a leer el contexto. */
  .feed-shell-v290 > .fd-rail {
    position: static;
    order: 2;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  }
  .feed-shell-v290 > .fd-center { order: 1; }
  .feed-shell-v290 > .fd-news {
    position: static;
    order: 2;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .feed-shell-v290 > .fd-news .fd-news-head { grid-column: 1 / -1; }
  .feed-shell-v290 > .fd-rail { order: 3; }
}
/* v303 · La noticia de «empezasteis a seguiros». Se parece a una tarjeta de actividad —misma
   cabecera, mismo avatar— pero no lleva rejilla de métricas y va marcada con el acento, para que
   no se confunda con una salida. Una noticia disfrazada de actividad ensucia el feed en cuanto
   hay dos.
   El nombre de la clase es `fd-follow`: nada de `promo-`, `banner-` ni `ad-`, que es lo que
   costó v297 entera — los bloqueadores las tapan y la tarjeta desaparecería sin dejar rastro. */
.feed-v280 .fd-follow { border-color: color-mix(in srgb, var(--lime) 34%, var(--line)); }
.feed-v280 .fd-follow .fd-head { border-bottom: none; }
.feed-v280 .fd-follow .fd-sport {
  border-color: color-mix(in srgb, var(--lime) 46%, var(--line));
  color: var(--lime);
}
.feed-v280 .fd-follow-note {
  margin: 0;
  padding: 0 15px 13px;
  font-size: var(--tl-type-kicker, 12px);
  line-height: 1.5;
  color: var(--muted);
}

@media (max-width: 440px) {
  .feed-v280 .fd-head { grid-template-columns: auto minmax(0, 1fr); }
  /* La pastilla del deporte salta a la segunda línea antes que estrujar el nombre. */
  .feed-v280 .fd-sport { grid-column: 2; justify-self: start; }
  .feed-v280 .fd-stat b { font-size: var(--tl-type-card-title, 16px); }
}

/* v313 · Feed editorial: actividad primero, contexto útil y cero ruido publicitario. */
#view-feed>.view-title{margin-bottom:18px;font-size:clamp(1.6rem,3vw,2.7rem);letter-spacing:-.035em}
#view-feed>.view-title::after{content:"Actividad de tu círculo · track protegido, nunca ubicación exacta ni salud";display:block;margin-top:5px;color:var(--muted);font-family:var(--tl-font-body,inherit);font-size:var(--tl-type-kicker, 12px);font-weight:600;letter-spacing:0}
.fd-news-head{padding:14px 15px;border-radius:14px;background:linear-gradient(145deg,#082b24,#124a34);color:#eef9f3}.fd-news-head h3{margin:4px 0 3px;font:400 var(--tl-type-stat, 24px)/1 var(--tl-font-display,"Bebas Neue",sans-serif);letter-spacing:.03em}.fd-news-head p{margin:0;color:#a9c8bc;font-size:var(--tl-type-kicker, 12px);line-height:1.4}
.fd-news-card{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;box-shadow:0 10px 28px rgba(5,24,18,.06);transition:transform .15s,border-color .15s}.fd-news-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--lime) 48%,var(--line))}.fd-news-art{height:104px;overflow:hidden;background:#082a27}.fd-news-art svg{display:block;width:100%;height:100%}.fd-news-card>span{display:block;margin:11px 12px 0}.fd-news-card h4{margin:4px 12px 0;font-size:var(--tl-type-meta, 13px);line-height:1.25;color:var(--ink)}.fd-news-card p{margin:5px 12px 13px;color:var(--muted);font-size:var(--tl-type-kicker, 12px);line-height:1.45}.fd-news-main{border-color:color-mix(in srgb,var(--lime) 35%,var(--line))}
.fd-rail-title{display:flex;align-items:center;justify-content:space-between;gap:10px}
.fd-rail-title h4{margin:0}.fd-rail-title button{border:0;background:transparent;color:var(--lime);font:800 var(--tl-type-kicker, 12px) var(--tl-font-body,inherit);cursor:pointer}
.fd-race-agenda{border-color:color-mix(in srgb,var(--lime) 35%,var(--line));background:linear-gradient(155deg,color-mix(in srgb,var(--lime) 7%,var(--surface)),var(--surface))}
.fd-race-agenda>p{margin:7px 0 11px;color:var(--muted);font-size:var(--tl-type-kicker, 12px);line-height:1.45}
.fd-races{display:grid;gap:7px}.fd-race{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--surface2);color:var(--ink);text-align:left;cursor:pointer}
.fd-race span{display:grid;min-width:0}.fd-race b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--tl-type-kicker, 12px)}.fd-race small{margin-top:2px;color:var(--muted);font-size:var(--tl-type-kicker, 12px)}.fd-race em{display:grid;place-items:center;min-width:38px;height:38px;border-radius:10px;background:var(--lime);color:#102007;font:900 var(--tl-type-kicker, 12px) var(--tl-font-body,inherit);font-style:normal}
.fd-race-empty{padding:11px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:var(--tl-type-kicker, 12px);line-height:1.45}
.fd-rail-list .tl-icon{width:16px;height:16px}.feed-v280 .fd-sport{display:inline-flex;align-items:center;gap:5px}.feed-v280 .fd-sport .tl-icon{width:13px;height:13px}
.feed-v280 .fd-item{box-shadow:0 10px 32px rgba(5,24,18,.07)}
.feed-v280 .fd-head{min-height:74px}.feed-v280 .fd-stat:first-child b{color:var(--lime)}
.feed-v280 .fd-mark .tl-icon{width:28px;height:28px;color:var(--lime)}

@media (max-width: 1280px) and (min-width: 1001px) {
  .feed-shell-v290 { grid-template-columns: minmax(0, 1fr) 268px; }
  .feed-shell-v290 > .fd-news { position: static; grid-column: 1 / -1; grid-row: 1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .feed-shell-v290 > .fd-news .fd-news-head { grid-column: 1 / -1; }
  .feed-shell-v290 > .fd-center { grid-column: 1; grid-row: 2; }
  .feed-shell-v290 > .fd-rail { grid-column: 2; grid-row: 2; }
}
@media (max-width: 720px) {
  .feed-shell-v290 > .fd-news { grid-template-columns: 1fr; }
  .feed-v280 .fd-visual { min-height: 130px; }
}


/* ================================================================================================
   v352 · Feed editorial TrailLab
   Tarjetas de actividad legibles, track fino sin mapa y laterales alimentados con datos reales.
   ================================================================================================ */
.feed-v280 .fd-item{
 background:linear-gradient(180deg,#0b2923 0%,#08211d 100%);
 border:1px solid rgba(73,198,160,.3);
 border-radius:16px;
 box-shadow:0 16px 42px rgba(0,0,0,.18);
 overflow:hidden;
}
.feed-v280 .fd-head{
 padding:18px 20px 16px;
 gap:13px;
 align-items:flex-start;
 border-bottom:1px solid rgba(104,168,149,.16);
}
.feed-v280 .fd-av{width:46px;height:46px;border-radius:12px;border:1px solid rgba(166,242,27,.55);box-shadow:0 0 0 3px rgba(166,242,27,.08)}
.feed-v280 .fd-main{min-width:0;display:flex;flex-direction:column;gap:3px}
.feed-v280 .fd-who{display:flex;align-items:baseline;gap:8px;min-width:0}
.feed-v280 .fd-who b{font-size:var(--tl-type-meta, 13px);line-height:1.1;color:#f5faf7}
.feed-v280 .fd-who small{font-size:var(--tl-type-kicker, 12px);line-height:1.2;color:#8ea69e;text-transform:uppercase;letter-spacing:.07em;font-weight:800}
.feed-v280 .fd-ttl{font-size:var(--tl-type-subsection, 20px);line-height:1.15;font-weight:900;color:#fff;letter-spacing:-.015em;white-space:normal}
.feed-v280 .fd-sport{
 margin-left:auto;flex:0 0 auto;padding:7px 10px;border-radius:999px;
 background:#163b30;border:1px solid rgba(166,242,27,.25);color:#cde8a1;
 font-size:var(--tl-type-kicker, 12px);font-weight:900;text-transform:uppercase;letter-spacing:.04em;
}
.feed-v280 .fd-visual{
 height:clamp(190px,22vw,252px);
 min-height:0;aspect-ratio:auto;
 background:#09221d;
 border-top:0;border-bottom:1px solid rgba(83,155,133,.22);
 isolation:isolate;
}
.feed-v280 .fd-visual svg{display:block;width:100%;height:100%}
.feed-v280 .fd-relief{filter:drop-shadow(0 -8px 20px rgba(6,18,15,.25))}
.feed-v280 .fd-contours{mix-blend-mode:screen}
.feed-v280 .fd-track-shadow{filter:drop-shadow(0 5px 8px rgba(0,0,0,.48))}
.feed-v280 .fd-track{filter:drop-shadow(0 0 4px rgba(166,242,27,.2))}
.feed-v280 .fd-start,.feed-v280 .fd-finish{filter:drop-shadow(0 2px 4px rgba(0,0,0,.45))}
.feed-v280 .fd-track-badge{
 position:absolute;top:12px;right:14px;display:flex;align-items:center;gap:5px;
 padding:6px 9px;border-radius:999px;background:rgba(3,17,14,.72);
 border:1px solid rgba(151,199,183,.22);backdrop-filter:blur(8px);
 color:#b8d2ca;font-size:var(--tl-type-kicker, 12px);font-weight:900;text-transform:uppercase;letter-spacing:.08em;
}
.feed-v280 .fd-track-badge .tl-icon{width:12px;height:12px;color:#39d6bc}
.feed-v280 .fd-visual-label{
 left:16px;bottom:13px;padding:6px 9px;border-radius:8px;
 background:rgba(3,17,14,.76);border:1px solid rgba(151,199,183,.18);
 color:#d7e6e1;font-size:var(--tl-type-kicker, 12px);font-weight:800;letter-spacing:.015em;
}
.feed-v280 .fd-demo-label{top:12px;left:14px;right:auto;bottom:auto;padding:5px 9px;border-radius:999px;background:#a6f21b;color:#092019}
.feed-v280 .fd-mx{background:#0b2923;border-top:0}
.feed-v280 .fd-stat{padding:14px 10px;border-color:rgba(111,177,157,.24)}
.feed-v280 .fd-stat b{font-size:var(--tl-type-subsection, 20px);color:#f6faf8}
.feed-v280 .fd-stat:first-child b{color:#a6f21b}
.feed-v280 .fd-stat small{margin-top:4px;color:#8da59c;font-size:var(--tl-type-kicker, 12px);letter-spacing:.09em}

/* Panel de atleta: una única pieza compacta en vez de noticias genéricas de relleno. */
.feed-v280 .fd-news{display:flex;flex-direction:column;gap:12px}
.feed-v280 .fd-profile-card,.feed-v280 .fd-goal-card{
 background:linear-gradient(180deg,#102e28,#0b2520);
 border:1px solid rgba(73,198,160,.3);border-radius:14px;overflow:hidden;
 box-shadow:0 14px 34px rgba(0,0,0,.13);
}
.feed-v280 .fd-profile-card{padding:17px}
.feed-v280 .fd-profile-kicker,.feed-v280 .fd-goal-top>span{
 color:#39d6bc;font-size:var(--tl-type-kicker, 12px);font-weight:950;text-transform:uppercase;letter-spacing:.12em;
}
.feed-v280 .fd-profile-head{display:flex;gap:11px;align-items:center;margin:12px 0 15px}
.feed-v280 .fd-profile-head .fd-av{width:48px;height:48px}
.feed-v280 .fd-profile-head h3{margin:0;color:#fff;font-size:var(--tl-type-card-title, 16px);line-height:1.05}
.feed-v280 .fd-profile-head p{margin:4px 0 0;color:#8ca49c;font-size:var(--tl-type-kicker, 12px)}
.feed-v280 .fd-profile-stats{
 display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(108,166,149,.2);
 border-bottom:1px solid rgba(108,166,149,.2);margin:0 -17px;
}
.feed-v280 .fd-profile-stats button{
 appearance:none;border:0;border-right:1px solid rgba(108,166,149,.2);background:transparent;
 color:#fff;padding:13px 4px;cursor:pointer;
}
.feed-v280 .fd-profile-stats button:last-child{border-right:0}
.feed-v280 .fd-profile-stats b{display:block;font-size:var(--tl-type-card-title, 16px);line-height:1}
.feed-v280 .fd-profile-stats span{display:block;margin-top:5px;color:#8ba49b;font-size:var(--tl-type-kicker, 12px);text-transform:uppercase;font-weight:900;letter-spacing:.05em}
.feed-v280 .fd-profile-link{
 width:100%;margin:14px 0 0;padding:0;border:0;background:transparent;color:#d7e8e2;
 display:flex;align-items:center;justify-content:space-between;font-size:var(--tl-type-kicker, 12px);font-weight:850;cursor:pointer;
}
.feed-v280 .fd-profile-link .tl-icon{width:14px;height:14px;color:#a6f21b}
.feed-v280 .fd-goal-card{padding:17px;cursor:pointer}
.feed-v280 .fd-goal-top{display:flex;align-items:center;justify-content:space-between}
.feed-v280 .fd-goal-top>span{display:flex;align-items:center;gap:6px}
.feed-v280 .fd-goal-top .tl-icon{width:14px;height:14px;color:#39d6bc}
.feed-v280 .fd-goal-top strong{padding:4px 7px;border-radius:999px;background:#193c31;color:#a6f21b;font-size:var(--tl-type-kicker, 12px)}
.feed-v280 .fd-goal-card h4{margin:14px 0 5px;color:#fff;font-size:var(--tl-type-body, 15px);line-height:1.2}
.feed-v280 .fd-goal-card p{margin:0;color:#9eb3ac;font-size:var(--tl-type-kicker, 12px);line-height:1.45}
.feed-v280 .fd-goal-line{height:5px;margin:15px 0;background:#1e3a33;border-radius:999px;overflow:hidden}
.feed-v280 .fd-goal-line i{display:block;height:100%;background:linear-gradient(90deg,#39d6bc,#a6f21b);border-radius:inherit}
.feed-v280 .fd-goal-card .btn-ghost{width:100%;min-height:36px;font-size:var(--tl-type-kicker, 12px)}

/* Lateral derecho: retos, clubes y conexiones; sin anuncios ni cifras ficticias. */
.feed-v280 .fd-rail{display:flex;flex-direction:column;gap:12px}
.feed-v280 .fd-rail-card{
 padding:15px;background:rgba(11,38,32,.92);border:1px solid rgba(73,198,160,.26);
 border-radius:14px;box-shadow:0 14px 34px rgba(0,0,0,.12);
}
.feed-v280 .fd-rail-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.feed-v280 .fd-rail-title h4{margin:0;color:#fff;font-size:var(--tl-type-meta, 13px)}
.feed-v280 .fd-rail-title button{border:0;background:transparent;color:#39d6bc;font-size:var(--tl-type-kicker, 12px);font-weight:900;cursor:pointer;padding:3px}
.feed-v280 .fd-challenges,.feed-v280 .fd-people{display:flex;flex-direction:column;gap:3px}
.feed-v280 .fd-challenge,.feed-v280 .fd-person{
 width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;
 padding:8px 4px;border:0;border-top:1px solid rgba(102,157,141,.13);background:transparent;
 text-align:left;color:#f4f8f6;cursor:pointer;
}
.feed-v280 .fd-challenge:first-child,.feed-v280 .fd-person:first-child{border-top:0}
.feed-v280 .fd-side-emoji,.feed-v280 .fd-person-av{
 width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
 background:#153b30;border:1px solid rgba(166,242,27,.22);font-size:var(--tl-type-card-title, 16px);
}
.feed-v280 .fd-challenge b,.feed-v280 .fd-person b{display:block;overflow:hidden;text-overflow:ellipsis;font-size:var(--tl-type-kicker, 12px);line-height:1.25}
.feed-v280 .fd-challenge small,.feed-v280 .fd-person small{display:block;margin-top:3px;color:#8ba49b;font-size:var(--tl-type-kicker, 12px);line-height:1.25}
.feed-v280 .fd-person em{font-style:normal;color:#a6f21b;font-size:var(--tl-type-kicker, 12px);font-weight:900}
.feed-v280 .fd-clubs{display:flex;flex-wrap:wrap;gap:8px}
.feed-v280 .fd-club{
 position:relative;width:44px;height:44px;border-radius:11px;border:1px solid rgba(112,171,153,.3);
 background:#13352c;color:#fff;font-size:var(--tl-type-subsection, 20px);cursor:pointer;display:grid;place-items:center;
}
.feed-v280 .fd-club small{
 position:absolute;right:-4px;bottom:-4px;min-width:17px;height:17px;padding:0 3px;border-radius:999px;
 display:grid;place-items:center;background:#a6f21b;color:#102019;border:2px solid #0b2620;font-size:var(--tl-type-kicker, 12px);font-weight:950;
}
.feed-v280 .fd-side-empty{margin:4px 0;color:#829990;font-size:var(--tl-type-kicker, 12px);line-height:1.45}

/* La vista mantiene las tres columnas de escritorio y prioriza la actividad en móvil. */
@media(max-width:1000px){
 .feed-v280 .fd-profile-card,.feed-v280 .fd-goal-card,.feed-v280 .fd-rail-card{box-shadow:none}
 .feed-v280 .fd-news{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
 .feed-v280 .fd-rail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
}
@media(max-width:720px){
 .feed-v280 .fd-head{padding:14px;gap:10px}
 .feed-v280 .fd-av{width:40px;height:40px}
 .feed-v280 .fd-who{display:block}
 .feed-v280 .fd-who small{display:block;margin-top:3px}
 .feed-v280 .fd-ttl{font-size:var(--tl-type-card-title, 16px);margin-top:2px}
 .feed-v280 .fd-sport{padding:6px 8px;font-size:var(--tl-type-kicker, 12px)}
 .feed-v280 .fd-visual{height:176px}
 .feed-v280 .fd-track-badge{top:9px;right:9px;font-size:var(--tl-type-kicker, 12px)}
 .feed-v280 .fd-visual-label{left:9px;bottom:9px;max-width:76%;font-size:var(--tl-type-kicker, 12px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .feed-v280 .fd-stat{padding:12px 4px}
 .feed-v280 .fd-stat b{font-size:var(--tl-type-card-title, 16px)}
 .feed-v280 .fd-stat small{font-size:var(--tl-type-kicker, 12px)}
 .feed-v280 .fd-news,.feed-v280 .fd-rail{display:flex}
}
