  :root {
    --negro: #0a0a0a;
    --negro-medio: #111111;
    --negro-suave: #1a1a1a;
    --rojo: #c0392b;
    --rojo-vivo: #e74c3c;
    --dorado: #d4a843;
    --dorado-suave: #f0c060;
    --blanco: #f5f0eb;
    --gris: #888;
    --gris-suave: #555;
  }

  * { margin: 0; padding: 0; box-sizing: border-box; }

  html { scroll-behavior: smooth; }

  body {
    background: var(--negro);
    color: var(--blanco);
    font-family: 'Barlow', sans-serif;
    font-size: 16px;
    overflow-x: hidden;
  }

  /* ===== NAV ===== */
  nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 20px;
    height: 60px;
    background: rgba(10,10,10,0.95);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(212,168,67,0.15);
  }

  .nav-logo {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.6rem;
    letter-spacing: 3px;
    color: var(--blanco);
  }

  .nav-logo span { color: var(--dorado); }

  .nav-links {
    display: flex;
    gap: 28px;
    list-style: none;
  }

  .nav-links a {
    color: var(--gris);
    text-decoration: none;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.85rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    transition: color 0.2s;
  }

  .nav-links a:hover { color: var(--dorado); }

  .nav-cta {
    background: var(--rojo);
    color: white !important;
    padding: 8px 18px;
    font-family: 'Barlow Condensed', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: 2px;
    text-transform: uppercase;
    text-decoration: none;
    font-size: 0.8rem;
    transition: background 0.2s !important;
  }

  .nav-cta:hover { background: var(--rojo-vivo) !important; }

  .hamburger {
    display: none;
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
    padding: 4px;
  }

  .hamburger span {
    width: 24px;
    height: 2px;
    background: var(--blanco);
    transition: all 0.3s;
  }

  .mobile-menu {
    display: none;
    position: fixed;
    top: 60px; left: 0; right: 0;
    background: var(--negro-medio);
    border-bottom: 1px solid rgba(212,168,67,0.2);
    padding: 24px;
    z-index: 99;
    flex-direction: column;
    gap: 20px;
  }

  .mobile-menu.open { display: flex; }

  .mobile-menu a {
    color: var(--blanco);
    text-decoration: none;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.1rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255,255,255,0.07);
  }

  /* ===== HERO ===== */
  #hero {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 0 24px 60px;
    position: relative;
    overflow: hidden;
    background: var(--negro);
  }

  .hero-bg {
    position: absolute;
    inset: 0;
    background:
      radial-gradient(ellipse 80% 60% at 60% 40%, rgba(192,57,43,0.12) 0%, transparent 70%),
      radial-gradient(ellipse 50% 50% at 10% 80%, rgba(212,168,67,0.06) 0%, transparent 60%);
  }

  .hero-grid {
    position: absolute;
    inset: 0;
    background-image:
      linear-gradient(rgba(212,168,67,0.04) 1px, transparent 1px),
      linear-gradient(90deg, rgba(212,168,67,0.04) 1px, transparent 1px);
    background-size: 60px 60px;
    mask-image: linear-gradient(to bottom, transparent 0%, black 30%, black 70%, transparent 100%);
  }

  .hero-label {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.75rem;
    letter-spacing: 5px;
    text-transform: uppercase;
    color: var(--rojo);
    margin-bottom: 16px;
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
  }

  .hero-label::before {
    content: '';
    width: 30px;
    height: 1px;
    background: var(--rojo);
  }

  .hero-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(3.5rem, 12vw, 9rem);
    line-height: 0.9;
    letter-spacing: 2px;
    position: relative;
  }

  .hero-title .line-gold { color: var(--dorado); }
  

  .hero-sub {
    font-family: 'Barlow', sans-serif;
    font-size: clamp(0.85rem, 2.5vw, 1rem);
    font-weight: 300;
    color: rgba(245,240,235,0.6);
    max-width: 480px;
    line-height: 1.7;
    margin-top: 20px;
    position: relative;
  }

  .hero-actions {
    display: flex;
    gap: 16px;
    margin-top: 36px;
    position: relative;
    flex-wrap: wrap;
  }

  .btn-primary {
    background: var(--rojo);
    color: white;
    padding: 14px 32px;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
    text-decoration: none;
    display: inline-block;
    transition: all 0.2s;
    border: none;
    cursor: pointer;
  }

  .btn-primary:hover {
    background: var(--rojo-vivo);
    transform: translateY(-2px);
  }

  .btn-ghost {
    background: transparent;
    color: var(--dorado);
    padding: 13px 32px;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    text-decoration: none;
    border: 1px solid var(--dorado);
    transition: all 0.2s;
    cursor: pointer;
  }

  .btn-ghost:hover {
    background: rgba(212,168,67,0.1);
  }

  .hero-stats {
    position: absolute !important;
    right: 40px;
    bottom: 250px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    text-align: right;
  }

  .stat-item {}

  .stat-number {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 2.2rem;
    color: var(--dorado);
    line-height: 1;
  }

  .stat-label {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.7rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--gris);
  }

  /* ===== SECCIONES GENERALES ===== */
  section {
    padding: 80px 24px;
  }

  .section-label {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.7rem;
    letter-spacing: 5px;
    text-transform: uppercase;
    color: var(--rojo);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .section-label::before {
    content: '';
    width: 20px;
    height: 1px;
    background: var(--rojo);
  }

  .section-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2.4rem, 7vw, 4.5rem);
    line-height: 1;
    letter-spacing: 1px;
    margin-bottom: 20px;
  }

  .section-title span { color: var(--dorado); }

  /* ===== FILOSOFÍA ===== */
  #filosofia {
    background: var(--negro-medio);
    position: relative;
    overflow: hidden;
  }

  .filosofia-inner {
    max-width: 700px;
    position: relative;
  }

  .filosofia-quote {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(1.8rem, 5vw, 3rem);
    color: rgba(245,240,235,0.08);
    position: absolute;
    top: -10px;
    right: 0;
    line-height: 1;
    text-align: right;
    pointer-events: none;
    display: none;
  }

  .filosofia-pilares {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px;
    margin-top: 48px;
  }

  .pilar {
    background: var(--negro-suave);
    padding: 28px 24px;
    border-left: 3px solid transparent;
    transition: border-color 0.3s;
  }

  .pilar:hover { border-left-color: var(--dorado); }

  .pilar-icon {
    margin-bottom: 10px;
    font-size: 1.6rem;
    color: #C9A84C;
    line-height: 1;
  }

  .pilar-num {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 2.5rem;
    color: rgba(212,168,67,0.2);
    line-height: 1;
  }

  .pilar-titulo {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--blanco);
    margin: 8px 0 6px;
  }

  .pilar-texto {
    font-size: 0.85rem;
    color: var(--gris);
    line-height: 1.6;
  }

  /* ===== TRACKER DEMO ===== */
  #tracker {
    background: var(--negro);
  }

  .tracker-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px;
    margin-top: 36px;
  }

  .tracker-card {
    background: var(--negro-suave);
    padding: 24px;
    border-top: 2px solid transparent;
    transition: border-color 0.3s;
  }

  .tracker-card:hover { border-top-color: var(--rojo); }

  .tracker-icon {
    font-size: 1.4rem;
    margin-bottom: 12px;
  }

  .tracker-metric {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 2.4rem;
    color: var(--dorado);
    line-height: 1;
  }

  .tracker-unit {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.9rem;
    color: var(--gris);
    letter-spacing: 1px;
  }

  .tracker-label {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.75rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--gris-suave);
    margin-top: 4px;
  }

  .tracker-bar-bg {
    width: 100%;
    height: 3px;
    background: rgba(255,255,255,0.07);
    margin-top: 12px;
    border-radius: 2px;
  }

  .tracker-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--rojo), var(--dorado));
    border-radius: 2px;
    transition: width 1.5s ease;
  }

  .tracker-note {
    font-size: 0.8rem;
    color: rgba(212,168,67,0.85);
    margin-top: 8px;
    font-style: italic;
  }

  .connect-banner {
    background: linear-gradient(135deg, rgba(192,57,43,0.15), rgba(212,168,67,0.1));
    border: 1px solid rgba(212,168,67,0.2);
    padding: 20px 24px;
    margin-top: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
  }

  .connect-banner-text {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.85rem;
    letter-spacing: 1px;
    color: var(--gris);
  }

  .connect-banner-text strong {
    display: block;
    color: var(--blanco);
    font-size: 1rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 2px;
  }

  .btn-connect {
    background: transparent;
    border: 1px solid var(--dorado);
    color: var(--dorado);
    padding: 10px 22px;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.8rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
  }

  .btn-connect:hover {
    background: rgba(212,168,67,0.1);
  }

  /* ===== PLANES OVERLAY ===== */
  #planesOverlay {
    display: none;
    position: fixed;
    inset: 0;
    background: var(--negro-medio);
    z-index: 600;
    overflow-y: auto;
  }
  #planesOverlay.active {
    display: block;
    animation: planesIn 0.28s ease;
  }
  @keyframes planesIn {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0); }
  }

  .planes-overlay-hdr {
    position: sticky;
    top: 0;
    background: rgba(14,14,14,0.97);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(212,168,67,0.15);
    padding: 13px 28px;
    display: flex;
    align-items: center;
    gap: 20px;
    z-index: 10;
  }
  .planes-overlay-back {
    background: none;
    border: 1px solid rgba(245,240,235,0.25);
    color: var(--crema);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.72rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 7px 14px;
    cursor: pointer;
    transition: border-color 0.2s, color 0.2s;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .planes-overlay-back:hover { border-color: var(--dorado); color: var(--dorado); }
  .planes-overlay-titulo {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  .planes-overlay-body {
    max-width: 920px;
    margin: 0 auto;
    padding: 40px 28px 60px;
  }

  /* Encabezados por modalidad dentro del overlay */
  .planes-modalidad-hdr { margin: 44px 0 0; }
  .planes-modalidad-hdr:first-child { margin-top: 0; }
  .planes-modalidad-hdr h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.9rem;
    color: var(--crema);
    letter-spacing: 1px;
    margin: 6px 0 6px;
  }
  .planes-modalidad-hdr p {
    color: var(--gris);
    font-size: 0.9rem;
    line-height: 1.6;
    max-width: 640px;
  }
  .planes-orientaciones {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 12px;
  }
  .planes-nota-contrato {
    margin: 16px 0 0;
    padding: 12px 16px;
    background: rgba(212,168,67,0.06);
    border-left: 3px solid var(--dorado);
    border-radius: 6px;
    color: var(--gris);
    font-size: 0.82rem;
    line-height: 1.55;
  }
  .planes-nota-contrato strong { color: var(--crema); }

  /* Texto introductorio de cada vista */
  .planes-intro {
    color: var(--gris);
    font-size: 0.95rem;
    line-height: 1.6;
    max-width: 640px;
    margin: 0 0 8px;
  }

  /* ── VISTA 1: tarjetas de área (imagen arriba, sin precio) ── */
  .areas-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
    margin-top: 24px;
  }
  .area-card {
    background: var(--negro-suave);
    border: 1px solid rgba(245,240,235,0.08);
    border-radius: 10px;
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s;
    position: relative;
  }
  .area-card:hover {
    transform: translateY(-4px);
    border-color: rgba(212,168,67,0.45);
    box-shadow: 0 12px 30px rgba(0,0,0,0.4);
  }
  .area-card-img {
    height: 160px;
    background-size: cover;
    background-position: center;
    position: relative;
  }
  .area-card-img::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(18,18,18,0.85), rgba(18,18,18,0.1));
  }
  .area-card-modalidad {
    position: absolute;
    top: 10px; left: 10px;
    z-index: 1;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.62rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    background: rgba(0,0,0,0.55);
    color: var(--crema);
    border: 1px solid rgba(212,168,67,0.4);
    padding: 3px 9px;
    border-radius: 12px;
  }
  .area-card-body { padding: 16px 18px 20px; }
  .area-card-nombre {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.5rem;
    color: var(--crema);
    letter-spacing: 0.5px;
    line-height: 1.05;
  }
  .area-card-desc {
    color: var(--gris);
    font-size: 0.84rem;
    line-height: 1.5;
    margin: 8px 0 14px;
  }
  .area-card-cta {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.78rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--dorado);
    font-weight: 600;
  }

  /* ── VISTA 2: DECK deslizable de niveles (estilo app-switcher) ── */
  .plan-deck { margin-top: 22px; user-select: none; }
  .deck-genero {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-bottom: 18px;
  }
  .deck-gen-btn {
    flex: 0 0 auto;
    background: rgba(245,240,235,0.04);
    border: 1px solid rgba(245,240,235,0.14);
    color: var(--gris);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.85rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 8px 20px;
    border-radius: 22px;
    cursor: pointer;
    transition: all 0.2s;
  }
  .deck-gen-btn.on {
    background: var(--dorado);
    border-color: var(--dorado);
    color: #1a1a1a;
    font-weight: 700;
  }
  .deck-stage {
    position: relative;
    height: 392px;
    margin: 0 auto;
    max-width: 360px;
    touch-action: pan-y;
  }
  .deck-card {
    position: absolute;
    top: 0;
    left: 50%;
    width: 300px;
    max-width: 84vw;
    background: var(--negro-suave);
    border: 1px solid rgba(245,240,235,0.10);
    border-radius: 14px;
    overflow: hidden;
    cursor: pointer;
    transform-origin: center center;
    transition: transform 0.32s cubic-bezier(.22,.61,.36,1), opacity 0.32s ease;
    box-shadow: 0 18px 40px rgba(0,0,0,0.5);
    will-change: transform, opacity;
  }
  .deck-card .area-card-img { height: 220px; }
  .deck-card .area-card-body { padding: 16px 20px 22px; }
  .deck-card .area-card-nombre { font-size: 1.9rem; }
  .deck-card .area-card-desc { font-size: 0.88rem; margin: 10px 0 14px; }
  .deck-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin-top: 18px;
  }
  .deck-arrow {
    width: 42px; height: 42px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: rgba(245,240,235,0.05);
    border: 1px solid rgba(212,168,67,0.4);
    color: var(--dorado);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    transition: all 0.2s;
  }
  .deck-arrow:hover { background: rgba(212,168,67,0.15); }
  .deck-dots { display: flex; gap: 8px; align-items: center; }
  .deck-dot {
    width: 9px; height: 9px;
    border-radius: 50%;
    background: rgba(245,240,235,0.18);
    border: none;
    padding: 0;
    cursor: pointer;
    transition: all 0.2s;
  }
  .deck-dot.on { background: var(--dorado); transform: scale(1.25); }
  .deck-hint {
    text-align: center;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.72rem;
    letter-spacing: 1px;
    color: var(--gris-suave);
    margin-top: 12px;
  }
  @media (max-width: 480px) {
    .deck-stage { height: 360px; }
    .deck-card { width: 260px; }
    .deck-card .area-card-img { height: 190px; }
    .deck-card .area-card-nombre { font-size: 1.7rem; }
  }

  /* ── VISTA 2 (legacy): bloques por género ── */
  .genero-bloque { margin-top: 28px; }
  .genero-hdr {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--crema);
    font-weight: 700;
    border-bottom: 1px solid rgba(212,168,67,0.2);
    padding-bottom: 8px;
  }
  .genero-icono { color: var(--dorado); font-size: 1.2rem; margin-right: 4px; }
  .genero-bloque .planes-grid { margin-top: 14px; }

  /* ── VISTA 3: detalle del plan (tipo TrainHeroic) ── */
  .detalle-hero {
    height: 320px;
    background-size: cover;
    background-position: center;
    border-radius: 12px;
    position: relative;
    overflow: hidden;
    margin-top: 8px;
  }
  .detalle-hero-grad {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(14,14,14,0.95) 5%, rgba(14,14,14,0.2) 60%, rgba(14,14,14,0.4));
  }
  .detalle-hero-txt {
    position: absolute;
    left: 0; bottom: 0;
    padding: 28px;
    z-index: 1;
  }
  .detalle-modalidad {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.72rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--dorado);
    display: block;
    margin-bottom: 6px;
  }
  .detalle-titulo {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 2.6rem;
    color: var(--crema);
    line-height: 1;
    letter-spacing: 0.5px;
    margin: 0;
  }
  .detalle-body {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 28px;
    margin-top: 28px;
  }
  .detalle-desc {
    color: var(--crema);
    font-size: 1rem;
    line-height: 1.7;
    opacity: 0.92;
  }
  .detalle-incluye-t {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.85rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--dorado);
    font-weight: 600;
    margin: 24px 0 12px;
  }
  .detalle-incluye { list-style: none; padding: 0; margin: 0; }
  .detalle-incluye li {
    color: var(--gris);
    font-size: 0.92rem;
    padding: 8px 0 8px 26px;
    position: relative;
    border-bottom: 1px solid rgba(245,240,235,0.06);
  }
  .detalle-incluye li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--dorado);
    font-weight: 700;
  }
  .detalle-side {
    background: var(--negro-suave);
    border: 1px solid rgba(212,168,67,0.2);
    border-radius: 12px;
    padding: 24px 22px;
    align-self: start;
    position: sticky;
    top: 80px;
  }
  .detalle-precio-label {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.72rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--gris);
  }
  .detalle-precio {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 2.8rem;
    color: var(--crema);
    line-height: 1;
    margin: 2px 0;
  }
  .detalle-precio-sub {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.8rem;
    color: var(--gris);
    letter-spacing: 1px;
  }
  .detalle-contrato {
    margin: 16px 0;
    padding: 12px 14px;
    background: rgba(212,168,67,0.06);
    border-left: 3px solid var(--dorado);
    border-radius: 6px;
    color: var(--gris);
    font-size: 0.78rem;
    line-height: 1.5;
  }
  .detalle-contrato strong { color: var(--crema); }
  .detalle-comprar {
    width: 100%;
    text-align: center;
    margin-top: 16px;
    font-size: 0.95rem;
  }
  .detalle-garantia {
    text-align: center;
    color: var(--gris);
    font-size: 0.72rem;
    margin-top: 12px;
  }
  .detalle-precio-completo {
    display: block;
    margin-top: 16px;
    padding: 12px 14px;
    background: rgba(212,168,67,0.08);
    border: 1px solid rgba(212,168,67,0.4);
    border-radius: 8px;
  }
  .dp-completo-label {
    display: block;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.72rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--dorado);
    margin-bottom: 2px;
  }
  .dp-completo-valor {
    display: block;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.7rem;
    color: var(--dorado);
    line-height: 1;
  }
  .dp-completo-sub {
    display: block;
    font-size: 0.72rem;
    color: var(--gris);
    margin-top: 2px;
  }
  .dp-completo-badge {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 10px;
    padding: 7px 10px;
    background: rgba(39,174,96,0.12);
    border: 1px solid rgba(39,174,96,0.45);
    border-radius: 6px;
    color: #d6f5e3;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.78rem;
    letter-spacing: 0.5px;
    line-height: 1.2;
  }
  .dp-completo-badge i { color: #27ae60; font-size: 0.9rem; }
  .dp-completo-badge strong { color: #fff; font-weight: 700; }

  /* ── Características (estilo TrainHeroic) ── */
  .detalle-features { margin-top: 44px; }
  .detalle-features-t {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 2rem;
    color: var(--crema);
    letter-spacing: 0.5px;
    margin: 0 0 22px;
  }
  .detalle-features-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px 36px;
  }
  .detalle-feat {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    opacity: 0;
    animation: featUp 0.5s ease forwards;
  }
  @keyframes featUp {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
  }
  .detalle-feat-icon {
    flex-shrink: 0;
    width: 44px; height: 44px;
    display: flex; align-items: center; justify-content: center;
    background: rgba(212,168,67,0.08);
    border: 1px solid rgba(212,168,67,0.2);
    border-radius: 10px;
    color: var(--dorado);
    font-size: 1.1rem;
  }
  .detalle-feat-icon svg {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
  }
  .detalle-feat-txt h4 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--crema);
    margin: 2px 0 6px;
    letter-spacing: 0.5px;
  }
  .detalle-feat-txt p {
    color: var(--gris);
    font-size: 0.88rem;
    line-height: 1.55;
    margin: 0;
  }

  @media (max-width: 720px) {
    .detalle-body { grid-template-columns: 1fr; }
    .detalle-side { position: static; }
    .detalle-titulo { font-size: 2rem; }
    .detalle-features-grid { grid-template-columns: 1fr; gap: 22px; }
  }

  .planes-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2px;
    margin-top: 36px;
  }

  .plan-card {
    background: var(--negro-suave);
    padding: 32px 28px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px;
    align-items: start;
    border-left: 4px solid transparent;
    transition: all 0.3s;
    cursor: pointer;
    position: relative;
    overflow: hidden;
  }

  .plan-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(192,57,43,0.05), transparent);
    opacity: 0;
    transition: opacity 0.3s;
  }

  .plan-card:hover::before { opacity: 1; }

  .plan-card.destacado {
    border-left-color: var(--dorado);
    background: linear-gradient(135deg, rgba(212,168,67,0.06), var(--negro-suave));
  }

  .plan-card:hover { border-left-color: var(--rojo); }
  .plan-card.destacado:hover { border-left-color: var(--dorado); }

  .plan-badge {
    display: inline-block;
    background: var(--rojo);
    color: white;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.65rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 3px 10px;
    margin-bottom: 10px;
  }

  .plan-badge.gold {
    background: var(--dorado);
    color: var(--negro);
  }

  .plan-nombre {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.8rem;
    letter-spacing: 1px;
    color: var(--blanco);
    line-height: 1;
  }

  .plan-desc {
    font-size: 0.85rem;
    color: var(--gris);
    margin-top: 8px;
    line-height: 1.6;
    max-width: 480px;
  }

  .plan-features {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
  }

  .plan-tag {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.7rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--gris-suave);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 3px 10px;
  }

  .plan-precio-col {
    text-align: right;
    min-width: 100px;
  }

  .plan-precio {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 2.4rem;
    color: var(--dorado);
    line-height: 1;
  }

  .plan-precio-label {
    font-size: 0.7rem;
    color: var(--gris);
    letter-spacing: 1px;
    margin-bottom: 16px;
  }

  .btn-plan {
    display: block;
    background: var(--rojo);
    color: white;
    padding: 10px 20px;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    border: none;
    transition: background 0.2s;
    margin-top: 8px;
    width: 100%;
  }

  .btn-plan:hover { background: var(--rojo-vivo); }

  .planes-nota {
    margin-top: 24px;
    font-size: 0.8rem;
    color: var(--gris-suave);
    font-style: italic;
    padding-left: 4px;
    border-left: 2px solid rgba(212,168,67,0.3);
    padding: 8px 12px;
  }

  /* ===== BLOG ===== */
  #blog {
    background: var(--negro);
  }

  .blog-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px;
    margin-top: 36px;
  }

  .blog-card {
    background: var(--negro-suave);
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.3s;
  }

  .blog-card:hover { transform: translateY(-3px); }

  .blog-img-placeholder {
    height: 180px;
    background: linear-gradient(135deg, #1a0a0a, #0f0f1a);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 3rem;
    color: rgba(212,168,67,0.15);
    letter-spacing: 3px;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    position: relative;
    overflow: hidden;
  }

  .blog-img-placeholder::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 60%, var(--negro-suave));
  }

  .blog-body {
    padding: 20px;
  }

  .blog-cat {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.65rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--rojo);
    margin-bottom: 8px;
  }

  .blog-titulo {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--blanco);
    margin-bottom: 8px;
  }

  .blog-preview {
    font-size: 0.8rem;
    color: var(--gris);
    line-height: 1.5;
  }

  .blog-meta {
    font-size: 0.7rem;
    color: var(--gris-suave);
    margin-top: 14px;
    display: flex;
    gap: 12px;
  }

  /* ===== RESEÑAS ===== */
  #resenas {
    background: var(--negro-medio);
  }

  .resenas-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px;
    margin-top: 36px;
  }

  .resena-card {
    background: var(--negro-suave);
    padding: 28px 24px;
    border-top: 2px solid transparent;
    transition: border-color 0.3s;
  }

  .resena-card:hover { border-top-color: var(--dorado); }

  .resena-stars {
    color: var(--dorado);
    font-size: 0.9rem;
    letter-spacing: 3px;
    margin-bottom: 14px;
  }

  .resena-texto {
    font-size: 0.88rem;
    color: rgba(245,240,235,0.75);
    line-height: 1.7;
    font-style: italic;
    margin-bottom: 18px;
  }

  .resena-autor {
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-size: 0.85rem;
    color: var(--blanco);
  }

  .resena-rol {
    font-size: 0.75rem;
    color: var(--gris-suave);
    margin-top: 2px;
    letter-spacing: 1px;
  }

  .resena-resultado {
    display: inline-block;
    background: rgba(192,57,43,0.2);
    border: 1px solid rgba(192,57,43,0.3);
    color: var(--rojo-vivo);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.7rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 3px 10px;
    margin-top: 10px;
  }

  /* ===== CTA FINAL ===== */
  #cta-final {
    background: var(--negro);
    text-align: center;
    padding: 100px 24px;
    position: relative;
    overflow: hidden;
  }

  #cta-final::before {
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 600px; height: 600px;
    background: radial-gradient(circle, rgba(192,57,43,0.08) 0%, transparent 70%);
    pointer-events: none;
  }

  .cta-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2.5rem, 8vw, 5.5rem);
    line-height: 0.95;
    position: relative;
  }

  .cta-title span { color: var(--dorado); }

  /* ===== FOOTER ===== */
  footer {
    background: #050505;
    padding: 32px 24px;
    border-top: 1px solid rgba(212,168,67,0.1);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
  }

  .footer-logo {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.3rem;
    letter-spacing: 3px;
    color: var(--blanco);
  }

  .footer-logo span { color: var(--dorado); }

  /* Logo footer como botón */
  .footer-logo-img { transition: opacity 0.2s, filter 0.2s; }
  .footer-logo a:hover .footer-logo-img {
    opacity: 1 !important;
    filter: drop-shadow(0 0 6px rgba(212,168,67,0.5));
  }

  .footer-links {
    display: flex;
    gap: 20px;
    list-style: none;
  }

  .footer-links a {
    color: var(--gris-suave);
    text-decoration: none;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.75rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    transition: color 0.2s;
  }

  .footer-links a:hover { color: var(--dorado); }

  .footer-copy {
    font-size: 0.75rem;
    color: rgba(136,136,136,0.5);
    letter-spacing: 1px;
  }

  /* ===== MODAL PAGO ===== */
  .modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.85);
    z-index: 1500; /* por encima del overlay de planes (600) */
    justify-content: center;
    align-items: flex-start;       /* anclar arriba: con contenido alto en móvil se puede hacer scroll */
    overflow-y: auto;              /* el overlay scrollea cuando el modal supera la altura de pantalla */
    -webkit-overflow-scrolling: touch;
    padding: 20px;
  }

  .modal-overlay.open { display: flex; }

  .modal {
    background: var(--negro-suave);
    border: 1px solid rgba(212,168,67,0.2);
    max-width: 440px;
    width: 100%;
    padding: 36px;
    position: relative;
    margin: auto;                  /* centra verticalmente si sobra espacio; si no, scrollea desde arriba */
  }

  .modal-close {
    position: absolute;
    top: 16px; right: 16px;
    background: none;
    border: none;
    color: var(--gris);
    font-size: 1.4rem;
    cursor: pointer;
    line-height: 1;
  }

  .modal-close:hover { color: var(--blanco); }

  .modal-plan-nombre {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.5rem;
    color: var(--dorado);
    letter-spacing: 2px;
    margin-bottom: 4px;
  }

  .modal-plan-precio {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 2.2rem;
    font-weight: 700;
    color: var(--blanco);
    margin-bottom: 20px;
  }

  .modal-steps {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 24px;
  }

  .modal-step {
    display: flex;
    gap: 12px;
    align-items: flex-start;
  }

  .step-num {
    width: 24px;
    height: 24px;
    background: var(--rojo);
    color: white;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 1px;
  }

  .step-text {
    font-size: 0.85rem;
    color: var(--gris);
    line-height: 1.5;
  }

  .step-text strong {
    display: block;
    color: var(--blanco);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.9rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 2px;
  }

  .modal-divider {
    height: 1px;
    background: rgba(255,255,255,0.07);
    margin: 16px 0;
  }

  .modal-guarantee {
    font-size: 0.75rem;
    color: var(--gris-suave);
    text-align: center;
    margin-top: 12px;
  }

  /* ===== RESPONSIVE ===== */
  @media (max-width: 640px) {
    nav { padding: 12px 14px; }
    .nav-links { display: none; }
    .hamburger { display: flex; }
    .btn-ingresar { font-size: 10px !important; padding: 6px 10px !important; letter-spacing: 1px !important; display: inline-block !important; }

    section { padding: 60px 16px; }

    #hero { padding-top: 72px; padding-bottom: 110px; }
    .hero-label { margin-bottom: 16px; }
    .hero-stats { position: static !important; display: flex; flex-direction: row; gap: 20px; text-align: left; justify-content: flex-start; margin-bottom: 4px; }
    .stat-item { text-align: left; }
    .stat-number { font-size: 1.6rem; }
    .stat-label { font-size: 0.58rem; }
    .hero-sub { margin-top: 10px; }
    .seneca-block { margin-top: 10px; }
    .hero-actions { flex-direction: column; margin-top: 20px; }
    .btn-primary, .btn-ghost { text-align: center; padding: 14px 20px; }

    .filosofia-pilares { grid-template-columns: 1fr; }
    .tracker-grid { grid-template-columns: 1fr 1fr; }
    .blog-grid { grid-template-columns: 1fr; }
    .resenas-grid { grid-template-columns: 1fr; }

    .plan-card { grid-template-columns: 1fr; }
    .plan-precio-col { text-align: left; }
    .btn-plan { width: auto; display: inline-block; }

    /* Modal de pago: menos padding y scroll cómodo en móvil (antes se cortaba y el botón quedaba fuera) */
    .modal-overlay { padding: 12px; align-items: flex-start; }
    .modal { padding: 26px 20px; }
    .modal-plan-precio { font-size: 1.9rem; margin-bottom: 16px; }
    .modal-opciones-pago { margin: 18px 0 !important; }

    footer { flex-direction: column; text-align: center; }
    .footer-links { flex-wrap: wrap; justify-content: center; }

    /* Dashboard: hamburger siempre visible (nav desktop ya oculto por defecto) */
  }

  @media (max-width: 420px) {
    .tracker-grid { grid-template-columns: 1fr; }
  }

  /* Animaciones */
  @keyframes fadeUp {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
  }

  .hero-label { animation: fadeUp 0.6s ease 0.1s both; }
  .hero-title { animation: fadeUp 0.6s ease 0.2s both; }
  .hero-sub { animation: fadeUp 0.6s ease 0.35s both; }
  .hero-actions { animation: fadeUp 0.6s ease 0.5s both; }
  .hero-stats { animation: fadeUp 0.6s ease 0.6s both; }

  


  


  /* Spans dorados dentro de títulos */
  .hero-title .line-gold,
  .section-title span,
  .cta-title span {
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    background-image: url("data:image/jpeg;base64,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");
    background-size: 400px 200px;
    background-repeat: repeat;
    filter: none;
  }

  


  /* ── HERO SLIDER (FONDO) ── */
  .hero-slider {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
  }
  .slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1.4s ease;
    z-index: 0;
  }
  .slide.active { opacity: 1; }
  .slide img, .slide video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
  }
  .slide-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
      to bottom,
      rgba(10,10,10,0.4) 0%,
      rgba(10,10,10,0.65) 40%,
      rgba(10,10,10,0.93) 100%
    );
    z-index: 1;
  }
  .slider-dots {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 3;
  }
  .slider-dot {
    width: 28px; height: 2px;
    background: rgba(245,240,235,0.3);
    cursor: pointer;
    transition: background 0.3s, width 0.3s;
    border: none;
    padding: 0;
  }
  .slider-dot.active {
    background: var(--dorado);
    width: 44px;
  }

  /* Todo el contenido del hero por encima del slider */
  #hero > *:not(.hero-slider) {
    position: relative;
    z-index: 2;
  }


  .dash-connect-card.conectado {
    border-color: rgba(46,204,113,0.3) !important;
  }
  .dash-connect-card.conectado .dash-connect-status {
    color: #2ecc71 !important;
  }
  .dash-connect-card.sincronizando {
    border-color: rgba(252,76,2,0.35) !important;
    animation: strava-pulse 1.2s ease-in-out infinite;
  }
  .dash-connect-card.sincronizando .dash-connect-status::before {
    content: '⟳ ';
  }
  @keyframes strava-pulse {
    0%,100% { opacity: 1; }
    50%      { opacity: 0.6; }
  }
@keyframes se-pulse-red {
  0%,100% { opacity:1; box-shadow:0 0 0 0 rgba(211,47,47,0); }
  50%      { opacity:0.6; box-shadow:0 0 8px 2px rgba(211,47,47,0.25); }
}
@keyframes se-pulse-orange {
  0%,100% { opacity:1; box-shadow:0 0 0 0 rgba(224,123,0,0); }
  50%      { opacity:0.75; box-shadow:0 0 6px 1px rgba(224,123,0,0.18); }
}
  .strava-orange { color: #FC4C02; }


  /* ── MODAL LOGIN ── */
  #modalLogin {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.88);
    z-index: 300;
    justify-content: center;
    align-items: center;
    padding: 20px;
  }
  #modalLogin.open { display: flex; }

  .login-box {
    background: #1a1a1a;
    border: 1px solid rgba(212,168,67,0.25);
    max-width: 400px;
    width: 100%;
    padding: 36px 28px;
    position: relative;
    text-align: center;
  }
  .login-omega {
    height: 60px; width: auto;
    margin-bottom: 14px;
    filter: drop-shadow(0 0 10px rgba(212,168,67,0.4));
  }
  .login-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.8rem;
    letter-spacing: 3px;
    color: #f5f0eb;
    margin-bottom: 4px;
  }
  .login-sub {
    font-size: 12px; color: #888;
    letter-spacing: 1px; margin-bottom: 24px;
  }
  .btn-google {
    width: 100%; background: #fff; color: #333;
    border: none; padding: 12px 20px;
    font-family: 'Barlow', sans-serif; font-size: 14px;
    font-weight: 500; cursor: pointer;
    display: flex; align-items: center;
    justify-content: center; gap: 10px;
    margin-bottom: 10px; transition: background 0.2s;
  }
  .btn-google:hover { background: #f0f0f0; }
  .login-divider {
    display: flex; align-items: center;
    gap: 12px; margin: 14px 0;
  }
  .login-divider::before, .login-divider::after {
    content: ''; flex: 1; height: 1px;
    background: rgba(255,255,255,0.07);
  }
  .login-divider span {
    font-size: 10px; color: #444;
    letter-spacing: 2px; text-transform: uppercase;
  }
  .login-input {
    width: 100%;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    color: #f5f0eb; padding: 11px 13px;
    font-family: 'Barlow', sans-serif;
    font-size: 13px; margin-bottom: 9px;
    outline: none; transition: border-color 0.2s;
    box-sizing: border-box;
  }
  .login-input:focus { border-color: #d4a843; }
  .login-input::placeholder { color: #444; }
  .login-nota {
    font-size: 11px; color: #3a3a3a;
    margin-top: 14px; line-height: 1.6;
  }

  /* ── DASHBOARD ACTUALIZADO ── */
  #dashboardAtleta { display:none; position:fixed; inset:0; background:#0a0a0a; z-index:300; justify-content:center; align-items:flex-start; overflow-y:auto; }
  #dashboardAtleta.open { display:flex; }
  .dashboard-box { background:#0a0a0a; width:100%; max-width:680px; min-height:100vh; padding-bottom:60px; }

  /* ── ESCALA TIPOGRÁFICA COHERENTE ── */
  /* 5 estilos predefinidos: unifican familia, tamaño, peso, espaciado, altura */
  .t-display {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 2.2rem;
    font-weight: 400;
    letter-spacing: 2px;
    line-height: 1;
    color: #f5f0eb;
  }
  .t-headline {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.6rem;
    font-weight: 400;
    letter-spacing: 1px;
    line-height: 1;
    color: #f5f0eb;
  }
  .t-label {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2px;
    line-height: 1.2;
    text-transform: uppercase;
    color: #888;
  }
  .t-label-accent {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 3px;
    line-height: 1.2;
    text-transform: uppercase;
    color: #c0392b;
  }
  .t-body {
    font-family: 'Barlow', sans-serif;
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.5px;
    line-height: 1.6;
    color: #f5f0eb;
  }
  .t-body-italic {
    font-family: 'Barlow', sans-serif;
    font-size: 14px;
    font-weight: 300;
    font-style: italic;
    letter-spacing: 0px;
    line-height: 1.7;
    color: rgba(245,240,235,0.82);
  }
  .t-meta {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 1px;
    line-height: 1.3;
    color: #555;
  }
  .t-meta-accent {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 3px;
    line-height: 1.3;
    text-transform: uppercase;
    color: #d4a843;
  }
  .t-caption {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 1px;
    line-height: 1.2;
    color: #555;
  }

  .dash-header { background:linear-gradient(to bottom, #000000 0%, #1a1a1a 60%, #2c2c2c 100%); border-bottom:1px solid rgba(212,168,67,0.15); padding:14px 20px; display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:200; }
  .dash-header-logo { font-family:'Bebas Neue',sans-serif; font-size:1.1rem; letter-spacing:3px; color:#d4a843; display:flex; align-items:center; }
  .dash-header-logo img { height:36px; width:auto; display:block; }

  /* ── DASH NAV RESPONSIVE ── */
  .dash-desktop-nav { display:flex; align-items:center; gap:10px; }
  .dash-desktop-nav { display:none; }
  .dash-hamburger { display:flex; flex-direction:column; gap:5px; cursor:pointer; padding:6px 4px; }
  .dash-hamburger span { display:block; width:24px; height:2px; background:#d4a843; border-radius:2px; transition:all 0.3s; }

  /* Menú móvil del dashboard */
  .dash-mobile-menu {
    display: none;
    position: sticky;
    top: 0;
    z-index: 9;
    background: #111;
    border-bottom: 1px solid rgba(212,168,67,0.2);
    flex-direction: column;
  }
  .dash-mobile-menu.open { display: flex; }
  .dash-menu-link {
    background: none;
    border: none;
    color: #ccc;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 14px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 14px 20px;
    text-align: left;
    cursor: pointer;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    transition: background 0.15s;
    width: 100%;
  }
  .dash-menu-link:hover { background: rgba(255,255,255,0.05); }

  /* Perfil */
  .dash-profile { padding:24px 20px 16px; display:flex; align-items:center; gap:18px; border-bottom:1px solid rgba(255,255,255,0.05); }
  .dash-avatar-wrap { position:relative; flex-shrink:0; }
  .dash-avatar-circle { width:70px; height:70px; border-radius:50%; background:#c0392b; border:2px solid rgba(212,168,67,0.3); display:flex; align-items:center; justify-content:center; overflow:hidden; }
  #dashAvatarLetter { font-family:'Bebas Neue',sans-serif; font-size:2rem; color:white; }
  .dash-avatar-edit { position:absolute; bottom:0; right:0; width:22px; height:22px; background:#d4a843; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; color:#0a0a0a; cursor:pointer; font-weight:bold; }
  .dash-profile-info { flex:1; }
  .dash-saludo { font-family:'Barlow Condensed',sans-serif; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:#555; margin-bottom:3px; }
  .dash-nombre { font-family:'Bebas Neue',sans-serif; font-size:2.2rem; color:#f5f0eb; letter-spacing:2px; line-height:1; /* t-display */ }

  /* Frase */
  .dash-frase-wrap { margin:16px 20px; padding:16px 18px; background:rgba(212,168,67,0.04); border-left:3px solid #d4a843; position:relative; }
  .dash-frase-icon { font-family:Georgia,serif; font-size:2.5rem; color:rgba(212,168,67,0.15); position:absolute; top:6px; left:10px; line-height:1; }
  .dash-frase { font-family:'Barlow',sans-serif; font-size:14px; font-weight:300; font-style:italic; color:rgba(245,240,235,0.82); line-height:1.7; padding-left:10px; /* t-body-italic */ }
  .dash-frase-autor { font-family:'Barlow Condensed',sans-serif; font-size:11px; letter-spacing:3px; text-transform:uppercase; color:#d4a843; text-align:right; margin-top:8px; /* t-meta-accent */ }

  .dash-section-title { font-family:'Barlow Condensed',sans-serif; font-size:12px; letter-spacing:3px; text-transform:uppercase; color:#c0392b; padding:12px 12px 6px; display:flex; align-items:center; gap:8px; /* t-label-accent */ }
  .dash-section-title::before { content:''; width:14px; height:1px; background:#c0392b; }

  /* Métricas */
  .dash-metrics-grid { display:grid; grid-template-columns:1fr 1fr; gap:2px; padding:0 20px; }
  .dash-metric-card { background:#1a1a1a; padding:16px; border-top:2px solid transparent; transition:border-color 0.3s; }
  .dash-metric-card:hover { border-top-color:#c0392b; }
  .dash-metric-icon { font-size:1.1rem; margin-bottom:6px; }
  .dash-metric-value { font-family:'Bebas Neue',sans-serif; font-size:2rem; color:#d4a843; line-height:1; /* t-headline + color */ }
  .dash-metric-unit { font-family:'Barlow Condensed',sans-serif; font-size:12px; color:#888; letter-spacing:1px; margin-top:2px; /* t-label */ }
  .dash-metric-label { font-family:'Barlow Condensed',sans-serif; font-size:11px; letter-spacing:1px; text-transform:uppercase; color:#666; margin-top:4px; /* t-meta */ }
  .dash-bar-bg { width:100%; height:3px; background:rgba(255,255,255,0.06); margin-top:9px; border-radius:2px; }
  .dash-bar-fill { height:100%; background:linear-gradient(90deg,#c0392b,#d4a843); border-radius:2px; }
  .dash-metric-note { font-size:11px; color:rgba(212,168,67,0.75); margin-top:6px; font-style:italic; /* t-meta */ }

  /* Macros */
  .dash-macros-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:2px; padding:0 20px; }
  .dash-macro-card { background:#1a1a1a; padding:16px 12px; border-top:2px solid transparent; }
  .dash-macro-proteina { border-top-color:#e74c3c !important; }
  .dash-macro-carbo { border-top-color:#d4a843 !important; }
  .dash-macro-grasa { border-top-color:#3498db !important; }
  .dash-macro-name { font-family:'Barlow Condensed',sans-serif; font-size:12px; letter-spacing:1px; text-transform:uppercase; color:#aaa; margin-bottom:6px; /* t-label */ }
  .dash-macro-value { font-family:'Bebas Neue',sans-serif; font-size:2rem; color:#f5f0eb; line-height:1; /* t-headline + sized */ }
  .dash-macro-unit-small { font-size:11px; color:#888; /* t-meta */ }
  .dash-macro-meta { font-size:11px; color:#777; margin-top:4px; /* t-meta */ }
  .dash-macro-bar-bg { width:100%; height:2px; background:rgba(255,255,255,0.06); margin-top:8px; border-radius:2px; }
  .dash-macro-prot-fill { height:100%; background:#e74c3c; border-radius:2px; }
  .dash-macro-carb-fill { height:100%; background:#d4a843; border-radius:2px; }
  .dash-macro-fat-fill { height:100%; background:#3498db; border-radius:2px; }

  /* Nutricionista */
  .dash-nutri-banner { margin:4px 20px 0; background:rgba(212,168,67,0.05); border:1px solid rgba(212,168,67,0.15); padding:16px 18px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; }
  .dash-nutri-text strong { display:block; font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:#f5f0eb; margin-bottom:2px; /* t-label */ }
  .dash-nutri-text span { font-size:11px; color:#888; /* t-meta */ }
  .btn-agendar { background:#d4a843; color:#0a0a0a; border:none; padding:9px 18px; font-family:'Barlow Condensed',sans-serif; font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; cursor:pointer; white-space:nowrap; /* t-label */ }

  /* Apps */
  .dash-connect-grid { display:grid; grid-template-columns:1fr 1fr; gap:2px; padding:0 20px; }
  .dash-connect-card { background:#1a1a1a; padding:16px 14px; display:flex; align-items:center; gap:12px; cursor:pointer; border:1px solid transparent; transition:border-color 0.2s; }
  .dash-connect-card:hover { border-color:rgba(212,168,67,0.25); }
  .dash-connect-card.conectado { border-color:rgba(46,204,113,0.3) !important; }
  .dash-app-logo { display:flex; align-items:center; justify-content:center; width:36px; height:36px; flex-shrink:0; }
  .dash-connect-name { font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:#f5f0eb; /* t-label */ }
  .dash-connect-status { font-size:10px; color:#555; margin-top:2px; /* t-caption */ }
  .dash-connect-status.ok { color:#2ecc71; }

  .dash-footer { padding:28px 20px 0; text-align:center; }
  .btn-cerrar-sesion { background:none; border:2px solid #c0392b; border-radius:4px; padding:7px 18px; color:#e74c3c; font-family:'Barlow Condensed',sans-serif; font-size:16px; font-weight:700; letter-spacing:2px; text-transform:uppercase; cursor:pointer; transition:all 0.2s; }
  .btn-cerrar-sesion:hover { background:#c0392b; color:#fff; }
  .btn-ingresar {
    background: transparent; color: #d4a843;
    border: 1px solid #d4a843; padding: 7px 14px;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 11px; font-weight: 700;
    letter-spacing: 2px; text-transform: uppercase;
    cursor: pointer; white-space: nowrap;
    transition: background 0.2s;
    display: inline-flex; align-items: center; gap: 6px;
  }
  .btn-ingresar:hover { background: rgba(212,168,67,0.1); }


  .dash-icon-box {
    width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 2px;
    flex-shrink: 0;
  }


  /* ── GRÁFICOS DASHBOARD ── */
  .dash-activity-header {
    padding: 0 20px 16px;
    display: flex; justify-content: space-between; align-items: flex-end;
    flex-wrap: wrap; gap: 10px;
  }
  .dash-activity-name {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.6rem; color: #f5f0eb; letter-spacing: 1px; /* t-headline */
  }
  .dash-activity-date {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 11px; letter-spacing: 2px;
    text-transform: uppercase; color: #555; /* t-meta */
  }

  /* Stats fila superior */
  .dash-stats-row {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 2px; padding: 0 20px; margin-bottom: 2px;
  }
  .dash-stat-cell {
    background: #1a1a1a; padding: 14px 12px;
    border-top: 2px solid rgba(255,255,255,0.05);
  }
  .dash-stat-label {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 10px; letter-spacing: 1px;
    text-transform: uppercase; color: #555; margin-bottom: 4px; /* t-caption */
  }
  .dash-stat-value {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.6rem; color: #f5f0eb; line-height: 1; /* t-headline */
  }
  .dash-stat-unit {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 10px; color: #777; margin-top: 1px; /* t-caption */
  }

  /* Gráfico container */
  .dash-chart-card {
    background: #1a1a1a; margin: 2px 20px 0;
    padding: 16px 16px 10px;
  }
  .dash-chart-title {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 10px; letter-spacing: 2px;
    text-transform: uppercase; color: #555;
    margin-bottom: 12px; display: flex;
    align-items: center; justify-content: space-between; /* t-caption */
  }
  .dash-chart-title span { color: #d4a843; font-size: 10px; /* t-caption */ }
  .dash-chart-wrap { position: relative; height: 200px; }

  /* Zonas FC */
  .dash-zones-card {
    background: #1a1a1a; margin: 2px 20px 0;
    padding: 16px;
  }
  .dash-zone-row {
    display: flex; align-items: center;
    gap: 10px; margin-bottom: 8px;
  }
  .dash-zone-label {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 11px; letter-spacing: 1px;
    text-transform: uppercase; color: #888;
    width: 60px; flex-shrink: 0; /* t-meta */
  }
  .dash-zone-bar-bg {
    flex: 1; height: 8px;
    background: rgba(255,255,255,0.05); border-radius: 1px;
  }
  .dash-zone-bar-fill {
    height: 100%; border-radius: 1px;
    transition: width 1s ease;
  }
  .dash-zone-time {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.2rem; color: #f5f0eb;
    width: 45px; text-align: right; flex-shrink: 0; /* ~ t-headline pequeño */
  }
  .dash-zone-pct {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 10px; color: #555;
    width: 32px; text-align: right; flex-shrink: 0; /* t-caption */
  }
  .dash-zone-z5 { background: #e74c3c; }
  .dash-zone-z4 { background: #e67e22; }
  .dash-zone-z3 { background: #2ecc71; }
  .dash-zone-z2 { background: #3498db; }
  .dash-zone-z1 { background: #95a5a6; }

  /* Training effect */
  .dash-te-row {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 2px; padding: 0 20px; margin-top: 2px;
  }
  .dash-te-card {
    background: #1a1a1a; padding: 14px;
  }
  .dash-te-label {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 10px; letter-spacing: 1px;
    text-transform: uppercase; color: #555; margin-bottom: 6px; /* t-caption */
  }
  .dash-te-value {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 2.2rem; line-height: 1; /* t-display */
  }
  .dash-te-desc {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 10px; color: #888; margin-top: 2px; /* t-caption */
  }
  .dash-te-bar-bg {
    height: 4px; background: rgba(255,255,255,0.06);
    margin-top: 8px; border-radius: 2px;
  }
  .dash-te-bar-fill {
    height: 100%; border-radius: 2px;
  }

  @media (max-width: 480px) {
    .dash-stats-row { grid-template-columns: 1fr 1fr; }
  }


  /* ── REDONDEO GLOBAL DASHBOARD ── */
  .dash-metric-card,
  .dash-chart-card,
  .dash-zones-card,
  .dash-te-card,
  .dash-connect-card,
  .dash-nutri-banner,
  .dash-macro-card,
  .dash-frase-wrap,
  .login-box,
  .dashboard-box { border-radius: 8px; }

  .dash-stats-row,
  .dash-metrics-grid,
  .dash-macros-grid,
  .dash-connect-grid,
  .dash-te-row { gap: 6px; }

  .dash-bar-bg,
  .dash-bar-fill,
  .dash-zone-bar-bg,
  .dash-zone-bar-fill,
  .dash-macro-bar-bg,
  .dash-macro-prot-fill,
  .dash-macro-carb-fill,
  .dash-macro-fat-fill,
  .dash-te-bar-bg,
  .dash-te-bar-fill { border-radius: 6px !important; }

  .dash-zone-bar-fill { border-radius: 4px !important; }

  /* ── TIPOGRAFÍA MÁS GRANDE ── */
  .dash-stat-label { font-size: 11px !important; letter-spacing: 1px !important; color: #888 !important; }
  .dash-stat-value { font-size: 1.9rem !important; }
  .dash-stat-unit  { font-size: 13px !important; color: #888 !important; }

  .dash-metric-value { font-size: 2.2rem !important; }
  .dash-metric-unit  { font-size: 14px !important; }
  .dash-metric-label { font-size: 13px !important; color: #888 !important; }
  .dash-metric-note  { font-size: 12px !important; }

  .dash-zone-label { font-size: 13px !important; color: #aaa !important; }
  .dash-zone-time  { font-size: 1.1rem !important; }
  .dash-zone-pct   { font-size: 13px !important; color: #888 !important; }

  .dash-te-label { font-size: 12px !important; color: #888 !important; }
  .dash-te-value { font-size: 2.8rem !important; }
  .dash-te-desc  { font-size: 13px !important; color: #aaa !important; }

  .dash-connect-name   { font-size: 14px !important; }
  .dash-connect-status { font-size: 12px !important; color: #666 !important; }

  .dash-chart-title { font-size: 11px !important; letter-spacing: 3px !important; }
  .dash-chart-title span { font-size: 12px !important; }

  .dash-section-title { font-size: 11px !important; }

  .dash-nombre  { font-size: 2.4rem !important; }
  .dash-saludo  { font-size: 12px !important; }
  .dash-frase   { font-size: 16px !important; line-height: 1.7 !important; }
  .dash-frase-autor { font-size: 12px !important; }

  .dash-nutri-text strong { font-size: 14px !important; }
  .dash-nutri-text span   { font-size: 13px !important; }

  /* ── BOTONES CON VOLUMEN Y PROFUNDIDAD ── */
  .btn-agendar {
    background: linear-gradient(135deg, #f0c060 0%, #d4a843 40%, #b8860b 100%) !important;
    color: #0a0a0a !important;
    border: none !important;
    padding: 11px 22px !important;
    font-size: 13px !important;
    letter-spacing: 2px !important;
    border-radius: 4px !important;
    box-shadow: 0 4px 12px rgba(212,168,67,0.35), inset 0 1px 0 rgba(255,255,255,0.2) !important;
    transition: all 0.2s !important;
    font-weight: 700 !important;
  }
  .btn-agendar:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 18px rgba(212,168,67,0.45) !important;
  }

  .btn-r, .btn-primary, .nav-cta {
    border-radius: 4px !important;
    box-shadow: 0 4px 14px rgba(192,57,43,0.35), inset 0 1px 0 rgba(255,100,80,0.2) !important;
    transition: all 0.2s !important;
  }
  .btn-r:hover, .btn-primary:hover { transform: translateY(-2px) !important; }

  .btn-ingresar {
    border-radius: 4px !important;
    box-shadow: 0 2px 8px rgba(212,168,67,0.2) !important;
  }

  .btn-google {
    border-radius: 4px !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;
  }

  .dash-connect-card {
    border-radius: 8px !important;
    transition: all 0.2s !important;
  }
  .dash-connect-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 12px rgba(212,168,67,0.15) !important;
  }

  /* Pilar cards redondeados */
  .pilar { border-radius: 6px !important; }

  /* Plan cards */
  .plan-card { border-radius: 8px !important; }

  /* Blog y reseñas */
  .blog-card  { border-radius: 8px !important; }
  .rev-card   { border-radius: 8px !important; }

  /* Modal */
  .modal { border-radius: 10px !important; }
  .login-box { border-radius: 12px !important; }


  /* ── PALETA TÁCTICA ── */
  :root {
    --cian: #00c8d4;
    --cian-suave: #00e5f0;
    --cian-oscuro: #00909a;
  }

  /* ── TIPOGRAFÍA TÁCTICA GLOBAL ── */

  /* Títulos principales — más grandes e impactantes */
  .hero-title {
    font-size: clamp(3rem, 9vw, 7rem) !important;
    letter-spacing: 1px !important;
    line-height: 0.88 !important;
  }

  .section-title {
    font-size: clamp(2.8rem, 8vw, 5.5rem) !important;
    line-height: 0.92 !important;
    letter-spacing: 0px !important;
  }

  .cta-title {
    font-size: clamp(3rem, 9vw, 6rem) !important;
  }

  /* Subtítulos sección — cian */
  .section-label {
    color: var(--cian) !important;
    font-size: 0.75rem !important;
    letter-spacing: 6px !important;
  }
  .section-label::before { background: var(--cian) !important; }

  .hero-label {
    color: var(--cian) !important;
    font-size: 0.75rem !important;
    letter-spacing: 6px !important;
  }
  .hero-label::before { background: var(--cian) !important; }

  /* Pilar números — cian */
  .pilar-num {
    color: rgba(0,200,212,0.25) !important;
    font-size: 3rem !important;
  }

  /* Pilar títulos */
  .pilar-titulo {
    color: var(--cian) !important;
    font-size: 0.95rem !important;
    letter-spacing: 3px !important;
  }

  /* Pilar texto más grande */
  .pilar-texto { font-size: 0.92rem !important; line-height: 1.7 !important; }

  /* Plan nombres */
  .plan-nombre { font-size: 2.2rem !important; letter-spacing: 2px !important; }

  /* Plan tags */
  .plan-tag {
    font-size: 0.72rem !important;
    letter-spacing: 1.5px !important;
    color: var(--cian) !important;
    border-color: rgba(0,200,212,0.25) !important;
  }

  /* Blog categorías */
  .blog-cat { color: var(--cian) !important; }

  /* Blog títulos */
  .blog-titulo {
    font-size: 1.15rem !important;
    line-height: 1.35 !important;
  }

  /* Blog preview */
  .blog-preview { font-size: 0.88rem !important; line-height: 1.6 !important; color: #999 !important; }

  /* Reseña resultado badge */
  .resena-resultado {
    color: var(--cian) !important;
    border-color: rgba(0,200,212,0.3) !important;
    background: rgba(0,200,212,0.08) !important;
    font-size: 0.72rem !important;
  }

  /* Tracker labels */
  .tracker-unit {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1rem !important;
    color: #aaa !important;
    letter-spacing: 1px !important;
  }

  /* Stats del hero */
  .stat-label {
    color: var(--cian) !important;
    font-size: 0.72rem !important;
    letter-spacing: 3px !important;
  }

  /* Sección connect banner */
  .connect-banner-text strong {
    color: var(--cian) !important;
    letter-spacing: 3px !important;
  }

  /* Dashboard section titles */
  .dash-section-title {
    color: var(--cian) !important;
    font-size: 11px !important;
    letter-spacing: 6px !important;
  }
  .dash-section-title::before { background: var(--cian) !important; }

  /* Dashboard chart titles */
  .dash-chart-title { color: var(--cian) !important; }

  /* Activity name */
  .dash-activity-name { font-size: 1.7rem !important; }
  .dash-activity-date { color: #888 !important; font-size: 12px !important; }

  /* Zona labels */
  .dash-zone-label { color: #ccc !important; }

  /* Hero sub párrafo más grande */
  .hero-sub {
    font-size: clamp(0.95rem, 2.5vw, 1.1rem) !important;
    line-height: 1.8 !important;
    color: rgba(245,240,235,0.75) !important;
  }

  /* Frase Séneca */
  .seneca-quote {
    font-size: clamp(1.05rem, 3vw, 1.3rem) !important;
    color: rgba(245,240,235,0.9) !important;
  }
  .seneca-autor { color: var(--dorado) !important; }

  /* Plan desc */
  .plan-desc { font-size: 0.9rem !important; line-height: 1.7 !important; }

  /* Filosofía párrafos */
  #filosofia p { font-size: 0.98rem !important; line-height: 1.85 !important; }

  /* Reseña texto */
  .resena-texto { font-size: 0.92rem !important; line-height: 1.75 !important; }
  .resena-autor { font-size: 0.9rem !important; }
  .resena-rol { color: var(--cian) !important; font-size: 0.78rem !important; }

  /* Modal pasos */
  .step-text { font-size: 0.9rem !important; line-height: 1.6 !important; }

  /* Nav links */
  .nav-links a { font-size: 0.82rem !important; }

  /* Tracker metric values más grandes */
  .tracker-metric {
    font-size: 2.8rem !important;
  }
  .tracker-label { font-size: 12px !important; color: var(--cian) !important; }

  /* Sección filosofía pilares hover */
  .pilar:hover { border-left-color: var(--cian) !important; }


  /* Lucide icons */
  .tracker-icon i,
  .dash-metric-icon i { display: block; }
  .tracker-icon { 
    display: flex; align-items: center; justify-content: flex-start;
    margin-bottom: 10px; 
  }
  .dash-icon-box i { display: flex; align-items: center; justify-content: center; }


  /* ── SECCIONES CLARAS ── */

  /* Variables modo claro */
  --texto-claro: #111111;
  --texto-medio-claro: #444444;
  --texto-suave-claro: #777777;
  --fondo-blanco: #ffffff;
  --fondo-gris: #f4f4f4;
  --fondo-gris-oscuro: #e8e8e8;
  --borde-claro: rgba(0,0,0,0.08);

  /* Sección Filosofía — blanco */
  #filosofia {
    background: var(--fondo-blanco, #ffffff) !important;
    color: #111 !important;
  }
  #filosofia .section-label { color: var(--rojo) !important; }
  #filosofia .section-label::before { background: var(--rojo) !important; }
  #filosofia .section-title { color: #111 !important; }
  #filosofia .section-title span { color: var(--rojo) !important; }
  #filosofia p { color: #444 !important; }
  #filosofia p strong { color: #111 !important; }
  #filosofia .pilar {
    background: #f4f4f4 !important;
    border-left-color: transparent !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
  }
  #filosofia .pilar:hover { border-left-color: var(--rojo) !important; }
  #filosofia .pilar-num { color: rgba(192,57,43,0.15) !important; }
  #filosofia .pilar-titulo { color: #111 !important; }
  #filosofia .pilar-texto { color: #666 !important; }
  #filosofia .pilar-icon i { color: #C9A84C !important; }
  /* Lucide fallback: SVGs también dorados */
  #filosofia .pilar svg {
    color: #C9A84C !important;
    stroke: #C9A84C !important;
    display: block !important;
    width: 28px !important;
    height: 28px !important;
  }

  /* Sección Tracker — gris claro */
  #tracker {
    background: #f4f4f4 !important;
    color: #111 !important;
  }
  #tracker .section-label { color: var(--rojo) !important; }
  #tracker .section-label::before { background: var(--rojo) !important; }
  #tracker .section-title { color: #111 !important; }
  #tracker .section-title span { color: var(--rojo) !important; }
  #tracker p { color: #555 !important; }
  #tracker .tracker-card {
    background: #ffffff !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07) !important;
    border-top-color: transparent !important;
  }
  #tracker .tracker-card:hover { border-top-color: var(--rojo) !important; }
  #tracker .tracker-metric { color: #111 !important; }
  #tracker .tracker-unit { color: #888 !important; }
  #tracker .tracker-label { color: var(--rojo) !important; }
  #tracker .tracker-note { color: #999 !important; }
  #tracker .tracker-bar-bg { background: rgba(0,0,0,0.07) !important; }
  #tracker .connect-banner {
    background: #111 !important;
    border-color: rgba(212,168,67,0.3) !important;
  }
  #tracker .connect-banner .connect-banner-text { color: #aaa !important; }
  #tracker .connect-banner strong { color: #f5f0eb !important; }

  /* Overlay Planes — siempre oscuro (ignora modo claro del body) */
  #planesOverlay { background: var(--negro-medio) !important; color: var(--crema) !important; }
  #planes .section-label::before { background: var(--rojo) !important; }
  #planes .section-title { color: #111 !important; }
  #planes .section-title span { color: var(--rojo) !important; }
  #planes .plan-card {
    background: #f7f7f7 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06) !important;
    border-left-color: transparent !important;
  }
  #planes .plan-card:hover { border-left-color: var(--rojo) !important; }
  #planes .plan-card.destacado {
    background: #fff9f0 !important;
    border-left-color: var(--dorado) !important;
  }
  #planes .plan-nombre { color: #111 !important; }
  #planes .plan-desc { color: #555 !important; }
  #planes .plan-tag {
    color: #777 !important;
    border-color: rgba(0,0,0,0.12) !important;
  }
  #planes .plan-precio { color: var(--rojo) !important; }
  #planes .plan-precio-label { color: #999 !important; }
  #planes .planes-nota {
    color: #888 !important;
    border-left-color: rgba(192,57,43,0.3) !important;
  }

  /* Sección Blog — gris claro */
  #blog {
    background: #f4f4f4 !important;
    color: #111 !important;
  }
  #blog .section-label { color: var(--rojo) !important; }
  #blog .section-label::before { background: var(--rojo) !important; }
  #blog .section-title { color: #111 !important; }
  #blog .section-title span { color: var(--rojo) !important; }
  #blog .blog-card {
    background: #ffffff !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07) !important;
  }
  #blog .blog-img-placeholder {
    background: linear-gradient(135deg, #1a0505, #0f0f1a) !important;
  }
  #blog .blog-titulo { color: #111 !important; }
  #blog .blog-preview { color: #666 !important; }
  #blog .blog-meta { color: #999 !important; }

  /* Sección Reseñas — blanco */
  #resenas {
    background: #ffffff !important;
    color: #111 !important;
  }
  #resenas .section-label { color: var(--rojo) !important; }
  #resenas .section-label::before { background: var(--rojo) !important; }
  #resenas .section-title { color: #111 !important; }
  #resenas .section-title span { color: var(--rojo) !important; }
  #resenas .resena-card {
    background: #f7f7f7 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06) !important;
    border-top-color: transparent !important;
  }
  #resenas .resena-card:hover { border-top-color: var(--dorado) !important; }
  #resenas .resena-texto { color: #444 !important; }
  #resenas .resena-autor { color: #111 !important; }
  #resenas .resena-rol { color: var(--rojo) !important; }
  #resenas .resena-stars { color: var(--dorado) !important; }
  #resenas .resena-resultado {
    color: var(--rojo) !important;
    background: rgba(192,57,43,0.08) !important;
    border-color: rgba(192,57,43,0.2) !important;
  }

  /* NAV en secciones claras — hacer el nav adaptable */
  /* Nav ya tiene backdrop-filter, queda bien sobre claro */

  /* Footer siempre oscuro */
  footer { background: #0a0a0a !important; }


  /* ── CONTRASTE HERO ── */
  .hero-sub {
    color: rgba(255,255,255,0.92) !important;
    text-shadow: 0 1px 8px rgba(0,0,0,0.8) !important;
    font-size: 1.05rem !important;
  }
  .seneca-quote {
    color: rgba(255,255,255,0.92) !important;
    text-shadow: 0 1px 6px rgba(0,0,0,0.7) !important;
  }
  .hero-label {
    text-shadow: 0 1px 6px rgba(0,0,0,0.9) !important;
  }

  /* ── FIX TÍTULOS EN SECCIÓN CLARA (filosofía) ── */
  /* El grunge texture no funciona bien sobre fondo blanco — quitar en secciones claras */
  #filosofia .section-title,
  #planes .section-title,
  #blog .section-title,
  #resenas .section-title,
  #tracker .section-title {
    -webkit-text-fill-color: initial !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    background-image: none !important;
    filter: none !important;
    color: #111 !important;
  }
  #filosofia .section-title span,
  #planes .section-title span,
  #blog .section-title span,
  #resenas .section-title span,
  #tracker .section-title span {
    -webkit-text-fill-color: initial !important;
    background-image: none !important;
    filter: none !important;
    color: var(--rojo) !important;
  }
  /* Cta en negro mantiene grunge */
  #cta-final .cta-title {
    -webkit-text-fill-color: transparent !important;
  }


  #hero .hero-sub {
    text-shadow: 0 2px 10px rgba(0,0,0,0.9) !important;
    color: rgba(255,255,255,0.95) !important;
  }
  #hero .hero-label {
    text-shadow: 0 1px 6px rgba(0,0,0,0.9) !important;
  }
  .seneca-block {
    background: rgba(0,0,0,0.4) !important;
    border-left-color: var(--dorado) !important;
    backdrop-filter: blur(4px) !important;
  }
  .seneca-quote {
    color: rgba(255,255,255,0.95) !important;
    text-shadow: 0 1px 8px rgba(0,0,0,0.8) !important;
  }


  /* ── FILOSOFÍA FONDO BLANCO FORZADO ── */
  #filosofia,
  #filosofia * { color: inherit; }
  #filosofia {
    background: #ffffff !important;
    background-color: #ffffff !important;
    color: #111111 !important;
  }
  #filosofia p,
  #filosofia .filosofia-inner { color: #444444 !important; }
  #filosofia p strong { color: #111 !important; }

  /* ── PILARES: más compactos, menos padding ── */
  .pilar {
    padding: 18px 16px !important;
  }
  .pilar-texto { font-size: 0.88rem !important; line-height: 1.55 !important; }
  .pilar-titulo { font-size: 0.85rem !important; margin: 6px 0 5px !important; }
  .filosofia-pilares { gap: 6px !important; }

  /* ── HERO: todo blanco brillante excepto botones ── */
  .hero-title {
    color: #ffffff !important;
    text-shadow: 0 2px 15px rgba(0,0,0,0.7) !important;
  }
  .hero-title .line-gold {
    color: var(--dorado) !important;
    text-shadow: 0 2px 12px rgba(0,0,0,0.6) !important;
  }
  .hero-label {
    color: #ffffff !important;
    text-shadow: 0 1px 8px rgba(0,0,0,0.9) !important;
  }
  .hero-sub {
    color: #ffffff !important;
    font-weight: 400 !important;
    text-shadow: 0 1px 10px rgba(0,0,0,0.85) !important;
  }
  .seneca-quote {
    color: #ffffff !important;
    text-shadow: 0 1px 8px rgba(0,0,0,0.85) !important;
    font-weight: 400 !important;
  }
  .stat-number { color: #ffffff !important; text-shadow: 0 1px 6px rgba(0,0,0,0.7) !important; }
  .stat-label  { color: rgba(255,255,255,0.85) !important; }

  /* Secciones tracker, planes, blog, reseñas — textos bien visibles */
  #tracker p,
  #planes p,
  #blog p,
  #resenas p { color: #444 !important; }

  #tracker .section-title,
  #planes  .section-title,
  #blog    .section-title,
  #resenas .section-title { color: #111 !important; }


  /* ── HERO TITLE LIMPIO ── */
  .hero-title {
    font-family: 'Bebas Neue', sans-serif !important;
    font-size: clamp(3.5rem, 12vw, 9rem) !important;
    line-height: 0.9 !important;
    letter-spacing: 2px !important;
    color: #ffffff !important;
    background-image: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    -webkit-text-fill-color: #ffffff !important;
    filter: none !important;
    text-shadow: 0 2px 20px rgba(0,0,0,0.6) !important;
  }
  .hero-title .line-gold {
    color: var(--dorado) !important;
    -webkit-text-fill-color: var(--dorado) !important;
    background-image: none !important;
    filter: none !important;
  }
  /* Quitar grunge de todos los section-title también */
  .section-title,
  .cta-title {
    background-image: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    -webkit-text-fill-color: initial !important;
    filter: none !important;
  }
  .section-title span {
    background-image: none !important;
    -webkit-text-fill-color: var(--dorado) !important;
    filter: none !important;
  }
  #cta-final .cta-title {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
  }
  #cta-final .cta-title span {
    color: var(--dorado) !important;
    -webkit-text-fill-color: var(--dorado) !important;
  }


  /* ── TÍTULOS LIMPIOS FINAL ── */
  .hero-title,
  .hero-title *,
  .section-title,
  .section-title *,
  .cta-title,
  .cta-title * {
    background-image: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
    -webkit-text-fill-color: unset !important;
    filter: none !important;
  }
  .hero-title { color: #ffffff !important; font-family: 'Bebas Neue', sans-serif !important; }
  .hero-title .line-gold { color: var(--dorado) !important; }
  .section-title { color: #111 !important; }
  #filosofia .section-title,
  #tracker .section-title,
  #planes .section-title,
  #blog .section-title,
  #resenas .section-title { color: #111 !important; }
  #filosofia .section-title span,
  #tracker .section-title span,
  #planes .section-title span,
  #blog .section-title span,
  #resenas .section-title span { color: var(--rojo) !important; }
  #hero .section-title,
  #cta-final .section-title,
  #cta-final .cta-title { color: #ffffff !important; }
  #cta-final .cta-title span { color: var(--dorado) !important; }


  /* ── DASHBOARD ATLETA — PALETA CLARA ── */

  #dashboardAtleta {
    background: #f2f4f5 !important;
  }

  /* ── RESUMEN MENSUAL — override colores dark del JS ── */

  /* Botones de mes generados por JS (inline styles con rgba(255,255,255,...)) */
  #resMesSelector button {
    color: #007a85 !important;
    border-color: rgba(0,122,133,0.25) !important;
    background: rgba(0,122,133,0.07) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
  }
  /* El activo tiene border rgba(0,200,212,0.4) — tomamos ese caso con borde más intenso */
  #resMesSelector button[style*="rgba(0,200,212"] {
    color: #005f6b !important;
    border-color: rgba(0,122,133,0.6) !important;
    background: linear-gradient(135deg,rgba(0,122,133,0.18),rgba(0,168,179,0.12)) !important;
    box-shadow: 0 2px 8px rgba(0,122,133,0.15) !important;
  }

  /* Etiquetas zonas FC (color:rgba(255,255,255,0.6)) */
  #resZonasFC div[style*="rgba(255,255,255,0.6)"],
  #resZonasFC div[style*="rgba(255,255,255,.6)"] {
    color: #444 !important;
  }
  /* Tiempo por zona (color:rgba(255,255,255,0.5)) */
  #resZonasFC div[style*="rgba(255,255,255,0.5)"],
  #resZonasFC div[style*="rgba(255,255,255,.5)"] {
    color: #555 !important;
  }
  /* Barra de fondo de zona (background:rgba(255,255,255,0.05)) */
  #resZonasFC div[style*="rgba(255,255,255,0.05)"] {
    background: rgba(0,0,0,0.08) !important;
  }
  /* Fallback general: cualquier texto blanco dentro del resumen */
  #resumenMensualWrap [style*="color:rgba(255,255,255"] {
    color: #444 !important;
  }
  #resumenMensualWrap [style*="color: rgba(255,255,255"] {
    color: #444 !important;
  }

  .dashboard-box {
    background: #f2f4f5 !important;
  }

  /* Header */
  .dash-header {
    background: linear-gradient(to bottom, #000000 0%, #1a1a1a 60%, #2c2c2c 100%) !important;
    border-bottom: 1px solid rgba(212,168,67,0.15) !important;
  }
  .dash-header-logo {
    color: #00a8b3 !important;
  }

  /* Perfil */
  .dash-profile {
    border-bottom: 1px solid rgba(0,0,0,0.07) !important;
    background: #ffffff !important;
  }
  .dash-avatar-circle {
    background: linear-gradient(135deg, #00909a, #006670) !important;
    border: 2px solid rgba(0,200,212,0.3) !important;
    box-shadow: none !important;
  }
  .dash-nombre { color: #111111 !important; }
  .dash-saludo { color: #00a8b3 !important; letter-spacing: 4px !important; }

  /* Frase */
  .dash-frase-wrap {
    background: #ffffff !important;
    border-left: 2px solid #00c8d4 !important;
  }
  .dash-frase { color: #333333 !important; }
  .dash-frase-icon { color: rgba(0,200,212,0.25) !important; }
  .dash-frase-autor { color: #00a8b3 !important; }

  /* Sección titles */
  .dash-section-title {
    color: #111111 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 3px !important;
    border: none !important;
  }
  .dash-section-title::before { background: #007a85 !important; }

  /* Stat cells */
  .dash-stats-row .dash-stat-cell {
    background: #ffffff !important;
    border-top: 2px solid rgba(0,122,133,0.3) !important;
  }
  .dash-stat-label { color: #007a85 !important; font-size: 11px !important; letter-spacing: 2px !important; font-weight: 600 !important; }
  .dash-stat-value { color: #111111 !important; font-size: 1.6rem !important; font-weight: 700 !important; }
  .dash-stat-unit  { color: #666666 !important; }

  /* Activity header */
  .dash-activity-name { color: #111111 !important; font-size: 1.1rem !important; font-weight: 600 !important; }
  .dash-activity-date { color: #666666 !important; font-size: 13px !important; }

  /* Metric cards */
  .dash-metric-card {
    background: #ffffff !important;
    border-top: 2px solid rgba(0,200,212,0.2) !important;
  }
  .dash-metric-card:hover {
    border-top-color: #00c8d4 !important;
    background: #f7fafa !important;
  }
  .dash-metric-value { color: #d4a843 !important; font-size: 1.4rem !important; font-weight: 700 !important; }
  .dash-metric-unit  { color: #666666 !important; }
  .dash-metric-label { color: #007a85 !important; font-weight: 600 !important; font-size: 11px !important; letter-spacing: 1px !important; }
  .dash-metric-note  { color: #007a85 !important; }
  .dash-bar-fill {
    background: linear-gradient(90deg, #00c8d4, #d4a843) !important;
  }

  /* Charts */
  .dash-chart-card {
    background: #ffffff !important;
    border: 1px solid rgba(0,0,0,0.07) !important;
  }
  .dash-chart-title { color: #111111 !important; font-size: 12px !important; letter-spacing: 2px !important; font-weight: 600 !important; }
  .dash-chart-title span { color: #555555 !important; }

  /* TH chart containers — fondo ligeramente gris para destacar del blanco del panel */
  .th-chart-container {
    background: #f7f9fa !important;
    border: 1.5px solid rgba(0,122,133,0.18) !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06) !important;
  }
  .th-chart-title { color: #111111 !important; font-size: 12px !important; font-weight: 600 !important; }
  .th-chart-subtitle { color: #777777 !important; }
  .th-divider { background: rgba(0,0,0,0.06) !important; }

  /* Range buttons */
  .th-range-btn {
    background: rgba(0,122,133,0.12) !important;
    border: 1.5px solid rgba(0,122,133,0.35) !important;
    color: #005f6b !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    padding: 7px 15px !important;
    border-radius: 22px !important;
  }
  .th-range-btn:hover { background: rgba(0,168,179,0.2) !important; color: #004d57 !important; border-color: rgba(0,168,179,0.55) !important; }
  .th-range-btn.active { background: linear-gradient(135deg,rgba(0,122,133,0.35),rgba(0,168,179,0.28)) !important; color: #003d44 !important; border-color: rgba(0,122,133,0.75) !important; box-shadow: 0 2px 10px rgba(0,122,133,0.2) !important; }

  /* Dist buttons */
  .th-dist-btn {
    background: rgba(0,122,133,0.12) !important;
    border: 1.5px solid rgba(0,122,133,0.35) !important;
    color: #005f6b !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    padding: 7px 15px !important;
    border-radius: 22px !important;
  }
  .th-dist-btn:hover { background: rgba(0,168,179,0.2) !important; color: #004d57 !important; border-color: rgba(0,168,179,0.55) !important; }
  .th-dist-btn.active { background: linear-gradient(135deg,rgba(0,122,133,0.4),rgba(0,168,179,0.32)) !important; color: #003d44 !important; border-color: rgba(0,122,133,0.8) !important; box-shadow: 0 2px 12px rgba(0,122,133,0.22) !important; }

  /* PR stats */
  .th-pr-stat {
    background: #f5f7f8 !important;
    border: 1px solid rgba(0,0,0,0.07) !important;
  }
  .th-pr-stat-label { color: #777777 !important; }
  .th-pr-stat-value { color: #007a85 !important; }
  .th-pr-stat-sub { color: #999999 !important; }
  .th-pr-stat.best .th-pr-stat-value { color: #d4a843 !important; }
  .th-pr-stat.delta .th-pr-stat-value { color: #27ae60; } /* sin !important: JS sobreescribe con naranja si empeoró */

  /* Working max */
  .th-working-max {
    background: #f5f7f8 !important;
    border: 1px solid rgba(0,0,0,0.07) !important;
  }
  .th-wm-label { color: #777777 !important; }
  .th-wm-value { color: #007a85 !important; }
  .th-wm-unit { color: #888888 !important; }
  .th-wm-icon { color: #aaaaaa !important; }

  /* RM strip — visible en fondo blanco */
  .th-rm-cell { background: rgba(0,0,0,0.03) !important; }
  .th-rm-rep  { color: #888888 !important; }
  .th-rm-kg   { color: #333333 !important; }
  .th-rm-unit { color: #888888 !important; }
  .th-rm-cell.best .th-rm-kg  { color: #c8901c !important; }
  .th-rm-cell.best .th-rm-rep { color: #a07428 !important; }

  /* Tabla últimas sesiones — texto oscuro en fondo blanco */
  .th-sets-table th { color: rgba(0,0,0,0.4) !important; border-bottom-color: rgba(0,0,0,0.07) !important; }
  .th-sets-table td { color: #444444 !important; border-bottom-color: rgba(0,0,0,0.05) !important; }
  .th-sets-table td.highlight { color: #c8901c !important; font-weight: 700 !important; }
  .th-set-badge { background: rgba(200,144,28,0.12) !important; color: #c8901c !important; }

  /* Tarjetas ejercicios — fondo claro */
  .th-ex-card { background: rgba(0,0,0,0.03) !important; border-color: rgba(0,0,0,0.07) !important; }
  .th-ex-card:hover { background: rgba(0,168,179,0.06) !important; border-color: rgba(0,168,179,0.3) !important; }
  .th-ex-card.active { background: rgba(0,168,179,0.1) !important; border-color: rgba(0,168,179,0.5) !important; }
  .th-ex-name { color: #333333 !important; }
  .th-ex-meta { color: #888888 !important; }
  .th-ex-max  { color: #007a85 !important; }

  /* Exercise buttons */
  .th-exercise-btn {
    background: rgba(0,0,0,0.04) !important;
    border: 1px solid rgba(0,0,0,0.1) !important;
    color: #555555 !important;
  }
  .th-exercise-btn:hover { background: rgba(212,168,67,0.1) !important; color: #a07a10 !important; border-color: rgba(212,168,67,0.4) !important; }
  .th-exercise-btn.active { background: rgba(212,168,67,0.14) !important; color: #a07a10 !important; border-color: rgba(212,168,67,0.5) !important; box-shadow: none !important; }

  /* CSV empty state */
  .th-csv-empty {
    background: #f5f7f8 !important;
    border: 1px dashed rgba(0,0,0,0.15) !important;
  }
  .th-csv-empty-text { color: #999999 !important; }

  /* Zones */
  .dash-zones-card {
    background: #ffffff !important;
    border: 1px solid rgba(0,0,0,0.07) !important;
  }
  .dash-zone-label { color: #444444 !important; }
  .dash-zone-time  { color: #111111 !important; }
  .dash-zone-pct   { color: #888888 !important; }
  .dash-zone-bar-bg { background: rgba(0,0,0,0.07) !important; }
  .dash-zone-z5 { background: #e74c3c !important; }
  .dash-zone-z4 { background: #e67e22 !important; }
  .dash-zone-z3 { background: #00c8d4 !important; }
  .dash-zone-z2 { background: #3498db !important; }
  .dash-zone-z1 { background: #cccccc !important; }

  /* CSV upload / mapping panel — tema claro */
  .csv-upload-zone {
    background: #f5f7f8 !important;
    border-color: rgba(0,0,0,0.15) !important;
  }
  .csv-upload-zone:hover, .csv-upload-zone.drag-over {
    background: rgba(212,168,67,0.05) !important;
    border-color: rgba(212,168,67,0.45) !important;
  }
  .csv-upload-title { color: #555555 !important; }
  .csv-upload-sub   { color: #999999 !important; }
  .csv-mapping {
    background: rgba(212,168,67,0.04) !important;
    border-color: rgba(212,168,67,0.25) !important;
  }
  .csv-mapping-title { color: rgba(140,100,10,0.85) !important; }
  .csv-map-label     { color: #444444 !important; }
  .csv-map-select {
    background: #ffffff !important;
    border-color: rgba(0,0,0,0.18) !important;
    color: #222222 !important;
  }
  .csv-map-select:focus {
    border-color: rgba(212,168,67,0.55) !important;
    color: #222222 !important;
  }
  .csv-import-btn { color: #7a5a00 !important; }
  .csv-import-btn:hover { background: rgba(212,168,67,0.15) !important; border-color: rgba(212,168,67,0.5) !important; color: #5a3e00 !important; }

  /* Nutricionista */
  .dash-nutri-banner {
    background: #ffffff !important;
    border: 1px solid rgba(0,0,0,0.08) !important;
  }
  .dash-nutri-text strong { color: #111111 !important; }
  .dash-nutri-text span   { color: #666666 !important; }

  /* Connect cards */
  .dash-connect-card {
    background: #ffffff !important;
    border: 1px solid rgba(0,0,0,0.08) !important;
  }
  .dash-connect-card:hover {
    border-color: rgba(0,200,212,0.4) !important;
    background: #f7fafa !important;
    box-shadow: none !important;
  }
  .dash-connect-name   { color: #111111 !important; }
  .dash-connect-status { color: #00a8b3 !important; }

  /* Macro cards */
  .dash-macro-card {
    background: #ffffff !important;
  }
  .dash-macro-name  { color: #666666 !important; }
  .dash-macro-value { color: #111111 !important; }
  .dash-macro-meta  { color: #00a8b3 !important; }
  .dash-macro-proteina { border-top-color: #e74c3c !important; }
  .dash-macro-carbo    { border-top-color: #d4a843 !important; }
  .dash-macro-grasa    { border-top-color: #00c8d4 !important; }

  /* Login box */
  .login-box {
    background: #ffffff !important;
    border: 1px solid rgba(0,0,0,0.1) !important;
  }
  .login-title { color: #111111 !important; }
  .login-sub   { color: #00a8b3 !important; }
  .login-input {
    background: #f5f5f5 !important;
    border: 1px solid rgba(0,0,0,0.12) !important;
    color: #111111 !important;
  }
  .login-input:focus { border-color: #00c8d4 !important; }
  .login-nota { color: #999999 !important; }
  .login-nota span { color: #d4a843 !important; }
  .login-divider span { color: #999999 !important; }
  .login-divider::before,
  .login-divider::after { background: rgba(0,0,0,0.1) !important; }

  /* Botón ingresar nav */
  .btn-ingresar {
    color: #00a8b3 !important;
    border-color: rgba(0,168,179,0.4) !important;
  }
  .btn-ingresar:hover {
    background: rgba(0,200,212,0.06) !important;
    border-color: #00c8d4 !important;
  }

  /* Cerrar sesión */
  .btn-cerrar-sesion { color: #e74c3c !important; border-color: #c0392b !important; }
  .btn-cerrar-sesion:hover { background: #c0392b !important; color: #fff !important; }

  /* Barra separadora */
  .dash-bar-bg { background: rgba(0,200,212,0.06) !important; }

  /* Avatar edit button */
  .dash-avatar-edit {
    background: #d4a843 !important;
    color: #000 !important;
  }


  /* ── GRÁFICOS ESTILO TRAINHEROIC ── */
  .th-chart-container {
    background: #111418;
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 10px;
    padding: 16px;
    margin: 0 8px 6px;
  }
  .th-chart-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px;
    flex-wrap: wrap;
    gap: 8px;
  }
  .th-chart-title {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 11px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #00c8d4;
  }
  .th-chart-subtitle {
    font-size: 11px;
    color: rgba(255,255,255,0.3);
    letter-spacing: 1px;
  }
  .th-working-max {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 8px;
    padding: 12px 16px;
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
  }
  .th-wm-icon {
    color: rgba(255,255,255,0.3);
    font-size: 1rem;
  }
  .th-wm-label {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.4);
    margin-bottom: 2px;
  }
  .th-wm-value {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.8rem;
    color: #00c8d4;
    line-height: 1;
  }
  .th-wm-unit {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 13px;
    color: rgba(255,255,255,0.4);
  }
  .th-range-selector {
    display: flex;
    gap: 4px;
    margin-bottom: 12px;
  }
  .th-range-btn {
    background: rgba(255,255,255,0.05);
    border: 1.5px solid rgba(255,255,255,0.1);
    color: rgba(255,255,255,0.55);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 1.5px;
    padding: 7px 16px;
    border-radius: 22px;
    cursor: pointer;
    transition: all 0.2s;
    text-transform: uppercase;
  }
  .th-range-btn:hover {
    background: rgba(0,200,212,0.1);
    color: #00c8d4;
    border-color: rgba(0,200,212,0.35);
    box-shadow: 0 2px 8px rgba(0,200,212,0.1);
  }
  .th-range-btn.active {
    background: linear-gradient(135deg, rgba(0,168,179,0.2), rgba(0,200,212,0.15));
    color: #00d4e0;
    border-color: rgba(0,200,212,0.55);
    box-shadow: 0 0 12px rgba(0,200,212,0.2), inset 0 1px 0 rgba(255,255,255,0.1);
  }
  .th-range-proj {
    border-color: rgba(212,168,67,0.25) !important;
    color: rgba(212,168,67,0.6) !important;
  }
  .th-range-proj:hover {
    background: rgba(212,168,67,0.1) !important;
    color: #d4a843 !important;
    border-color: rgba(212,168,67,0.5) !important;
  }
  .th-range-proj.active {
    background: rgba(212,168,67,0.12) !important;
    color: #d4a843 !important;
    border-color: rgba(212,168,67,0.5) !important;
  }
  .th-chart-wrap {
    position: relative;
    height: 140px;
  }
  .th-divider {
    height: 1px;
    background: rgba(255,255,255,0.04);
    margin: 6px 16px;
  }


  /* ── MEJORES TIEMPOS / PR ── */
  .th-pr-section { margin: 0 16px; }

  .th-dist-selector {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 14px;
  }
  .th-dist-btn {
    background: rgba(255,255,255,0.05);
    border: 1.5px solid rgba(255,255,255,0.1);
    color: rgba(255,255,255,0.55);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 1.5px;
    padding: 7px 16px;
    border-radius: 22px;
    cursor: pointer;
    transition: all 0.2s;
    text-transform: uppercase;
  }
  .th-dist-btn:hover {
    background: rgba(0,200,212,0.1);
    color: #00c8d4;
    border-color: rgba(0,200,212,0.35);
    box-shadow: 0 2px 8px rgba(0,200,212,0.1);
  }
  .th-dist-btn.active {
    background: linear-gradient(135deg, rgba(0,168,179,0.25), rgba(0,200,212,0.18));
    color: #00d4e0;
    border-color: rgba(0,200,212,0.6);
    box-shadow: 0 0 14px rgba(0,200,212,0.25), inset 0 1px 0 rgba(255,255,255,0.12);
  }

  .th-pr-stats {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 6px;
    margin-bottom: 14px;
  }
  .th-pr-stat {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 8px;
    padding: 12px;
  }
  .th-pr-stat-label {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.45);
    margin-bottom: 4px;
  }
  .th-pr-stat-value {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.7rem;
    color: #00c8d4;
    line-height: 1;
  }
  .th-pr-stat-sub {
    font-size: 12px;
    color: rgba(255,255,255,0.35);
    margin-top: 2px;
  }
  .th-pr-stat.best .th-pr-stat-value { color: #d4a843; }
  .th-pr-stat.delta .th-pr-stat-value { color: #2ecc71; font-size: 1.3rem; }

  .th-pr-wrap { position: relative; height: 160px; }

  /* ── FLIP DIGITS (PR cards) ── */
  .pr-flip-wrap { display: flex; align-items: center; gap: 2px; flex-wrap: wrap; margin: 2px 0; }
  .pr-fd {
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 4px;
    padding: 2px 5px;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.45rem;
    color: #00c8d4;
    min-width: 20px;
    text-align: center;
    line-height: 1.15;
  }
  .th-pr-stat.best .pr-fd { color: #d4a843; }
  .pr-fd.flipping { animation: pr-flipd 0.3s ease-in-out; }
  @keyframes pr-flipd {
    0%   { transform: scaleY(1); }
    45%  { transform: scaleY(0); color: #d4a843; }
    100% { transform: scaleY(1); }
  }
  /* Flip del bloque completo de stats al cambiar distancia */
  .th-pr-stats.flipping,
  .flip-y {
    animation: pr-stats-flip 0.32s ease-in-out;
  }
  @keyframes pr-stats-flip {
    0%   { opacity: 1; transform: rotateY(0deg); }
    40%  { opacity: 0; transform: rotateY(90deg); }
    60%  { opacity: 0; transform: rotateY(-90deg); }
    100% { opacity: 1; transform: rotateY(0deg); }
  }
  .pr-flip-sep {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.3rem;
    color: rgba(255,255,255,0.25);
    padding-bottom: 1px;
    line-height: 1;
  }

  /* ── TOAST PR ── */
  .pr-toast {
    position: fixed;
    top: 20px;
    left: 50%;
    transform: translateX(-50%) translateY(-120px);
    background: #8B1A1A;
    color: #fff;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 900;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 9px 20px;
    border-radius: 8px;
    z-index: 9999;
    transition: transform 0.4s cubic-bezier(0.34,1.56,0.64,1);
    pointer-events: none;
    white-space: nowrap;
  }
  .pr-toast.show { transform: translateX(-50%) translateY(0); }

  /* ── CONFETTI CANVAS ── */
  #pr-cf {
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    pointer-events: none;
    z-index: 9998;
  }

  /* ── POP VALUE ── */
  @keyframes pr-popval {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.3); }
    100% { transform: scale(1); }
  }
  .pr-pop { animation: pr-popval 0.45s cubic-bezier(0.34,1.56,0.64,1); }


  /* ── TRAINHEROIC CSV MODULE ── */

  /* Grilla de ejercicios top-20 (2 columnas) */
  .th-exercise-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
    max-height: 230px;
    overflow-y: auto;
    margin: 8px 0 12px;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.08) transparent;
  }
  .th-exercise-grid::-webkit-scrollbar { width: 3px; }
  .th-exercise-grid::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 2px; }
  .th-ex-card {
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 6px;
    padding: 8px 9px;
    cursor: pointer;
    transition: all 0.15s;
    min-width: 0;
  }
  .th-ex-card:hover  { border-color: rgba(212,168,67,0.25); background: rgba(212,168,67,0.04); }
  .th-ex-card.active { border-color: rgba(212,168,67,0.5);  background: rgba(212,168,67,0.09); }
  .th-ex-name {
    font-family: 'Barlow', sans-serif;
    font-size: 11px;
    font-weight: 500;
    color: #bbb;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
  }
  .th-ex-card.active .th-ex-name { color: #d4a843; }
  .th-ex-meta { font-family: 'Barlow', sans-serif; font-size: 10px; color: #444; margin-top: 2px; }
  .th-ex-max  { font-family: 'Barlow Condensed', sans-serif; font-size: 13px; color: #777; margin-top: 1px; }
  .th-ex-card.active .th-ex-max { color: #c49a38; }

  /* Tira RM (12 → 1 RM) */
  .th-rm-strip {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
    margin: 8px 0 12px;
  }
  .th-rm-cell {
    background: rgba(255,255,255,0.025);
    border-radius: 5px;
    padding: 6px 2px 5px;
    text-align: center;
  }
  .th-rm-rep  { font-family: 'Barlow Condensed', sans-serif; font-size: 9px; letter-spacing: 1px; color: #888; text-transform: uppercase; }
  .th-rm-kg   { font-family: 'Barlow Condensed', sans-serif; font-size: 14px; color: #e0e0e0; margin-top: 3px; line-height: 1; }
  .th-rm-unit { font-family: 'Barlow', sans-serif; font-size: 8px; color: #777; margin-top: 1px; }
  .th-rm-cell.best .th-rm-kg  { color: #d4a843; }
  .th-rm-cell.best .th-rm-rep { color: #8a6a22; }

  .th-csv-empty {
    background: rgba(255,255,255,0.02);
    border: 1px dashed rgba(255,255,255,0.1);
    border-radius: 8px;
    padding: 28px 16px;
    text-align: center;
  }
  .th-csv-empty-icon { 
    font-size: 1.8rem; 
    margin-bottom: 10px;
    opacity: 0.4;
  }
  .th-csv-empty-text {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 12px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.25);
    margin-bottom: 6px;
  }
  .th-csv-empty-sub {
    font-size: 11px;
    color: rgba(255,255,255,0.15);
  }

  .th-sets-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 10px;
    font-family: 'Barlow Condensed', sans-serif;
  }
  .th-sets-table th {
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.3);
    padding: 6px 8px;
    text-align: left;
    border-bottom: 1px solid rgba(255,255,255,0.05);
  }
  .th-sets-table td {
    font-size: 13px;
    color: rgba(255,255,255,0.7);
    padding: 7px 8px;
    border-bottom: 1px solid rgba(255,255,255,0.03);
  }
  .th-sets-table td.highlight {
    color: #d4a843;
    font-weight: 700;
    font-size: 14px;
  }
  .th-sets-table tr:last-child td { border-bottom: none; }
  .th-set-badge {
    display: inline-block;
    background: rgba(212,168,67,0.12);
    color: #d4a843;
    font-size: 10px;
    letter-spacing: 1px;
    padding: 2px 8px;
    border-radius: 10px;
    border: 1px solid rgba(212,168,67,0.2);
  }

  /* ── ENTRADA MANUAL TIEMPOS ── */
  .manual-entry-panel {
    background: #ffffff;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 8px;
    padding: 16px;
    margin-top: 6px;
  }
  .manual-entry-title {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 11px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #007a85;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .manual-dist-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .manual-dist-item {
    background: #f7f9fa;
    border: 1px solid rgba(0,0,0,0.07);
    border-radius: 6px;
    padding: 8px 12px;
    display: grid;
    grid-template-columns: 46px 1fr 34px;
    grid-template-areas:
      "label time save"
      "label date save"
      "last  last last";
    align-items: center;
    column-gap: 8px;
    row-gap: 6px;
  }
  .manual-dist-label {
    grid-area: label;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1px;
    color: #007a85;
  }
  .manual-time-input {
    background: #ffffff;
    border: 1px solid rgba(0,122,133,0.25);
    color: #111111;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.05rem;
    padding: 5px 8px;
    border-radius: 4px;
    grid-area: time;
    width: 100%;
    text-align: center;
    letter-spacing: 1px;
    outline: none;
    transition: border-color 0.2s;
  }
  .manual-time-input:focus { border-color: #00c8d4; }
  .manual-time-input::placeholder { color: rgba(0,0,0,0.25); font-size: 0.85rem; }
  .manual-date-input {
    background: #ffffff;
    border: 1px solid rgba(0,0,0,0.12);
    color: #444;
    font-family: 'Barlow', sans-serif;
    font-size: 11px;
    padding: 5px 6px;
    border-radius: 4px;
    grid-area: date;
    width: 100%;
    min-width: 0;
    outline: none;
    transition: border-color 0.2s;
  }
  .manual-date-input:focus { border-color: #00c8d4; }
  .manual-last {
    grid-area: last;
    font-family: 'Barlow', sans-serif;
    font-size: 10px;
    color: #aaa;
    letter-spacing: 0.2px;
    min-height: 13px;
  }
  .manual-save-btn {
    width: 100%;
    background: rgba(0,200,212,0.12);
    border: 1px solid rgba(0,200,212,0.25);
    color: #00c8d4;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
    padding: 11px;
    border-radius: 6px;
    cursor: pointer;
    margin-top: 12px;
    transition: all 0.2s;
  }
  .manual-save-btn:hover {
    background: rgba(0,200,212,0.2);
    box-shadow: 0 4px 12px rgba(0,200,212,0.15);
  }
  .manual-toggle {
    background: rgba(0,122,133,0.07);
    border: 1.5px solid rgba(0,122,133,0.3);
    color: #007a85;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    cursor: pointer;
    padding: 7px 16px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-radius: 20px;
    transition: all 0.2s;
  }
  .manual-toggle:hover { background: rgba(0,122,133,0.14); color: #005f6b; }
  .manual-toggle-icon { transition: transform 0.3s; }
  .manual-toggle-icon.open { transform: rotate(180deg); }

  /* Botón guardar individual por fila */
  .manual-row-save {
    grid-area: save;
    justify-self: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1.5px solid rgba(0,122,133,0.4);
    background: rgba(0,122,133,0.1);
    color: #007a85;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    line-height: 1;
  }
  .manual-row-save:hover {
    background: rgba(0,122,133,0.22);
    border-color: rgba(0,122,133,0.7);
    box-shadow: 0 2px 8px rgba(0,122,133,0.2);
  }
  .manual-row-save.guardado {
    background: rgba(0,168,100,0.15);
    border-color: rgba(0,168,100,0.5);
    color: #006644;
  }

  /* ── ZONAS DE CARRERA — INPUTS ── */
  .zona-tab {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 6px 13px;
    border-radius: 20px;
    border: 1px solid rgba(0,0,0,0.12);
    background: transparent;
    color: #aaa;
    cursor: pointer;
    transition: all .2s;
  }
  .zona-tab.zona-tab-active {
    background: rgba(0,122,133,0.1);
    border-color: rgba(0,122,133,0.4);
    color: #007a85;
    font-weight: 700;
  }
  .zona-label {
    display: block;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #aaa;
    margin-bottom: 5px;
    margin-top: 10px;
  }
  .zona-input {
    width: 100%;
    box-sizing: border-box;
    background: #f7f9fa;
    border: 1px solid rgba(0,0,0,0.10);
    border-radius: 6px;
    padding: 9px 11px;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 16px;
    color: #333;
    outline: none;
    transition: border .2s;
    -moz-appearance: textfield;
  }
  .zona-input::-webkit-outer-spin-button,
  .zona-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
  .zona-input:focus { border-color: rgba(0,122,133,0.4); }

  /* ── CSV UPLOADER ── */
  .csv-upload-zone {
    background: rgba(212,168,67,0.03);
    border: 2px dashed rgba(212,168,67,0.2);
    border-radius: 10px;
    padding: 24px 16px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s;
    position: relative;
    margin: 0 16px 6px;
  }
  .csv-upload-zone:hover,
  .csv-upload-zone.drag-over {
    border-color: rgba(212,168,67,0.5);
    background: rgba(212,168,67,0.07);
  }
  .csv-upload-zone input[type=file] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    width: 100%;
    height: 100%;
  }
  .csv-upload-icon {
    margin-bottom: 10px;
    color: rgba(212,168,67,0.4);
  }
  .csv-upload-title {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.6);
    margin-bottom: 4px;
  }
  .csv-upload-sub {
    font-size: 11px;
    color: rgba(255,255,255,0.25);
    line-height: 1.5;
  }
  .csv-upload-sub span {
    color: rgba(212,168,67,0.6);
    font-family: 'Barlow Condensed', sans-serif;
    letter-spacing: 1px;
  }

  /* Estado procesando */
  .csv-processing {
    display: none;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: rgba(212,168,67,0.06);
    border: 1px solid rgba(212,168,67,0.15);
    border-radius: 8px;
    margin: 0 16px 6px;
  }
  .csv-processing.show { display: flex; }
  .csv-spin {
    width: 18px; height: 18px;
    border: 2px solid rgba(212,168,67,0.2);
    border-top-color: #d4a843;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    flex-shrink: 0;
  }
  @keyframes spin { to { transform: rotate(360deg); } }
  .csv-processing-text {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 12px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(212,168,67,0.7);
  }

  /* Resumen del CSV cargado */
  .csv-summary {
    display: none;
    background: rgba(46,204,113,0.05);
    border: 1px solid rgba(46,204,113,0.15);
    border-radius: 8px;
    padding: 12px 16px;
    margin: 0 16px 8px;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
  }
  .csv-summary.show { display: flex; }
  .csv-summary-info {
    font-family: 'Barlow Condensed', sans-serif;
  }
  .csv-summary-name {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1px;
    color: #2ecc71;
    margin-bottom: 2px;
  }
  .csv-summary-meta {
    font-size: 11px;
    color: rgba(255,255,255,0.3);
    letter-spacing: 1px;
  }
  .csv-clear-btn {
    background: rgba(231,76,60,0.08);
    border: 1px solid rgba(231,76,60,0.4);
    color: rgba(231,76,60,0.85);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 5px 14px;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
  }
  .csv-clear-btn:hover { background: rgba(231,76,60,0.18); border-color: #e74c3c; color: #e74c3c; }

  /* Mapeo de columnas */
  .csv-mapping {
    display: none;
    background: rgba(212,168,67,0.04);
    border: 1px solid rgba(212,168,67,0.12);
    border-radius: 8px;
    padding: 14px 16px;
    margin: 0 16px 8px;
  }
  .csv-mapping.show { display: block; }
  .csv-mapping-title {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 10px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: rgba(212,168,67,0.6);
    margin-bottom: 12px;
  }
  .csv-map-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
  }
  .csv-map-label {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.4);
    width: 70px;
    flex-shrink: 0;
  }
  .csv-map-select {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    color: #ffffff;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 12px;
    padding: 5px 10px;
    border-radius: 4px;
    flex: 1;
    outline: none;
    cursor: pointer;
  }
  .csv-map-select:focus { border-color: rgba(212,168,67,0.4); }
  .csv-import-btn {
    width: 100%;
    background: linear-gradient(135deg, rgba(212,168,67,0.2), rgba(212,168,67,0.1));
    border: 1px solid rgba(212,168,67,0.35);
    color: #d4a843;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
    padding: 12px;
    border-radius: 6px;
    cursor: pointer;
    margin-top: 12px;
    transition: all 0.2s;
  }
  .csv-import-btn:hover {
    background: linear-gradient(135deg, rgba(212,168,67,0.3), rgba(212,168,67,0.15));
    box-shadow: 0 4px 12px rgba(212,168,67,0.15);
  }


  .login-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.85); backdrop-filter:blur(6px); z-index:1000; align-items:center; justify-content:center; padding:20px; }
  .login-overlay.active { display:flex; }
  .login-modal { background:#111111; border:1px solid rgba(212,168,67,0.2); width:100%; max-width:420px; padding:40px 36px; position:relative; animation:modalIn 0.25s ease; }
  @keyframes modalIn { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
  .login-modal-close { position:absolute; top:16px; right:20px; background:none; border:none; color:#888; font-size:1.4rem; cursor:pointer; transition:color 0.2s; }
  .login-modal-close:hover { color:#f5f0eb; }
  .login-modal-label { font-family:'Barlow Condensed',sans-serif; font-size:0.7rem; letter-spacing:5px; text-transform:uppercase; color:#c0392b; margin-bottom:8px; display:flex; align-items:center; gap:10px; }
  .login-modal-label::before { content:''; width:20px; height:1px; background:#c0392b; }
  .login-modal-title { line-height:1; margin-bottom:28px; }
  .login-modal-title span { color:#d4a843; }
  .login-modal-logo { max-width:260px; width:100%; height:auto; display:block; }
  .login-tabs { display:flex; margin-bottom:28px; border-bottom:1px solid rgba(255,255,255,0.08); }
  .login-tab { background:none; border:none; color:#888; font-family:'Barlow Condensed',sans-serif; font-size:0.8rem; letter-spacing:3px; text-transform:uppercase; padding:8px 20px 10px; cursor:pointer; position:relative; transition:color 0.2s; }
  .login-tab.active { color:#d4a843; }
  .login-tab.active::after { content:''; position:absolute; bottom:-1px; left:0; right:0; height:2px; background:#d4a843; }
  .login-form { display:none; flex-direction:column; gap:14px; }
  .login-form.active { display:flex; }
  .login-field { display:flex; flex-direction:column; gap:6px; }
  .login-field label { font-family:'Barlow Condensed',sans-serif; font-size:0.72rem; letter-spacing:3px; text-transform:uppercase; color:#888; }
  .login-field input { background:#1a1a1a; border:1px solid rgba(255,255,255,0.1); color:#f5f0eb; padding:12px 14px; font-family:'Barlow',sans-serif; font-size:0.9rem; outline:none; transition:border-color 0.2s; width:100%; }
  .login-field input:focus { border-color:rgba(212,168,67,0.5); }
  .login-btn-primary { background:#c0392b; color:white; border:none; padding:14px; font-family:'Barlow Condensed',sans-serif; font-size:0.9rem; font-weight:700; letter-spacing:3px; text-transform:uppercase; cursor:pointer; transition:background 0.2s; width:100%; margin-top:6px; }
  .login-btn-primary:hover { background:#e74c3c; }
  .login-divider-new { display:flex; align-items:center; gap:12px; margin:6px 0; }
  .login-divider-new::before,.login-divider-new::after { content:''; flex:1; height:1px; background:rgba(255,255,255,0.08); }
  .login-divider-new span { font-family:'Barlow Condensed',sans-serif; font-size:0.7rem; letter-spacing:2px; text-transform:uppercase; color:#555; }
  .login-btn-google { background:transparent; border:1px solid rgba(255,255,255,0.15); color:#f5f0eb; padding:12px; font-family:'Barlow Condensed',sans-serif; font-size:0.85rem; font-weight:600; letter-spacing:2px; text-transform:uppercase; cursor:pointer; transition:all 0.2s; width:100%; display:flex; align-items:center; justify-content:center; gap:10px; }
  .login-btn-google:hover { border-color:rgba(212,168,67,0.4); background:rgba(212,168,67,0.05); }
  .login-btn-google svg { width:18px; height:18px; flex-shrink:0; }
  .login-msg { font-family:'Barlow',sans-serif; font-size:0.82rem; padding:10px 14px; display:none; }
  .login-msg.error { display:block; background:rgba(192,57,43,0.15); border-left:3px solid #c0392b; color:#e74c3c; }
  .login-msg.success { display:block; background:rgba(212,168,67,0.1); border-left:3px solid #d4a843; color:#d4a843; }
  #nav-user-info { display:none; align-items:center; gap:12px; }
  #nav-user-name { font-family:'Barlow Condensed',sans-serif; font-size:0.82rem; letter-spacing:2px; text-transform:uppercase; color:#d4a843; }
  #btn-nav-logout { background:none; border:1px solid rgba(192,57,43,0.4); color:#888; padding:5px 12px; font-family:'Barlow Condensed',sans-serif; font-size:0.72rem; letter-spacing:2px; text-transform:uppercase; cursor:pointer; transition:all 0.2s; }
  #btn-nav-logout:hover { border-color:#c0392b; color:#c0392b; }

  /* ── CORRECCIÓN VISIBILIDAD EJES GRÁFICOS (tema claro) ── */
  #dashboardAtleta canvas {
    color: #333333 !important;
  }
  #dashboardAtleta .chartjs-render-monitor {
    color: #333333 !important;
  }

/* ── ESTANDARIZACIÓN TIPOGRÁFICA GLOBAL ─────────────────────
   Base: etiquetas 13px · valores 15px · secundario 13px
   Mismo estándar que las zonas de carrera
────────────────────────────────────────────────────────────── */
  .dash-activity-date    { font-size: 13px !important; letter-spacing: 2px !important; }
  .dash-activity-name    { font-size: 17px !important; }
  .dash-connect-name     { font-size: 15px !important; font-weight: 600 !important; }
  .dash-connect-status   { font-size: 13px !important; }
  .dash-saludo           { font-size: 13px !important; letter-spacing: 3px !important; }
  .dash-metric-label     { font-size: 13px !important; }
  .dash-metric-unit      { font-size: 14px !important; }
  .dash-metric-note      { font-size: 13px !important; }
  .dash-macro-meta       { font-size: 13px !important; }
  .dash-frase            { font-size: 16px !important; }
  .dash-frase-autor      { font-size: 13px !important; }
  .dash-stat-label       { font-size: 13px !important; }
  .dash-chart-title      { font-size: 13px !important; letter-spacing: 2px !important; }
  .dash-chart-title span { font-size: 14px !important; }
  .dash-te-label         { font-size: 13px !important; }
  .th-pr-stat-label      { font-size: 12px !important; letter-spacing: 1.5px !important; }
  .th-pr-stat-value      { font-size: 1.8rem !important; }
  .th-pr-stat-sub        { font-size: 13px !important; }
  .th-range-btn          { font-size: 14px !important; font-weight: 700 !important; }
  .dash-nutri-text span  { font-size: 13px !important; }
  .dash-section-title    { font-size: 13px !important; letter-spacing: 3px !important; }


/* ═══════════════════════════════════════════════════════════
   MEJORAS VISUALES Y ANIMACIONES — MÁXIMO ESFUERZO UPGRADE
   ═══════════════════════════════════════════════════════════ */

/* ── 1. SCROLL REVEAL: elementos aparecen al entrar en pantalla ── */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s cubic-bezier(0.22,1,0.36,1),
              transform 0.7s cubic-bezier(0.22,1,0.36,1);
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.7s cubic-bezier(0.22,1,0.36,1),
              transform 0.7s cubic-bezier(0.22,1,0.36,1);
}
.reveal-left.visible {
  opacity: 1;
  transform: translateX(0);
}
.reveal-right {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.7s cubic-bezier(0.22,1,0.36,1),
              transform 0.7s cubic-bezier(0.22,1,0.36,1);
}
.reveal-right.visible {
  opacity: 1;
  transform: translateX(0);
}
.reveal-scale {
  opacity: 0;
  transform: scale(0.92);
  transition: opacity 0.6s cubic-bezier(0.22,1,0.36,1),
              transform 0.6s cubic-bezier(0.22,1,0.36,1);
}
.reveal-scale.visible {
  opacity: 1;
  transform: scale(1);
}

/* Delays para stagger */
.reveal-d1 { transition-delay: 0.08s; }
.reveal-d2 { transition-delay: 0.16s; }
.reveal-d3 { transition-delay: 0.24s; }
.reveal-d4 { transition-delay: 0.32s; }
.reveal-d5 { transition-delay: 0.40s; }

/* ── 2. HERO mejorado: brillo rojo-dorado más intenso ── */
#hero::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 200px;
  background: linear-gradient(to top, var(--negro) 0%, transparent 100%);
  pointer-events: none;
  z-index: 1;
}
#hero > *:not(.hero-slider):not(.hero-grid) {
  position: relative;
  z-index: 2;
}

/* Pulso de brillo en el hero */
@keyframes heroGlow {
  0%, 100% { opacity: 0.6; }
  50%       { opacity: 1; }
}
.hero-grid {
  animation: heroGlow 4s ease-in-out infinite;
}

/* ── 3. STATS con efecto counter (el número "contará") ── */
.stat-number {
  font-variant-numeric: tabular-nums;
  transition: color 0.3s;
}
.stat-item:hover .stat-number {
  color: var(--dorado-suave);
  text-shadow: 0 0 20px rgba(212,168,67,0.5);
}

/* ── 4. SECTION LABEL con línea animada ── */
.section-label::before {
  transition: width 0.6s cubic-bezier(0.22,1,0.36,1);
}
.section-label:hover::before,
section:hover .section-label::before {
  width: 40px;
}

/* ── 5. PILARES de filosofía mejorados ── */
.pilar {
  position: relative;
  overflow: hidden;
}
.pilar::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 0;
  background: linear-gradient(to top, rgba(212,168,67,0.05), transparent);
  transition: height 0.4s ease;
}
.pilar:hover::after {
  height: 100%;
}
.pilar:hover {
  transform: translateY(-3px);
  transition: transform 0.3s ease, border-color 0.3s;
}

/* ── 6. TRACKER CARDS mejoradas ── */
.tracker-card {
  position: relative;
  overflow: hidden;
  transition: transform 0.3s ease, border-color 0.3s, box-shadow 0.3s;
}
.tracker-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--rojo), var(--dorado));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1);
}
.tracker-card:hover::before {
  transform: scaleX(1);
}
.tracker-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.5);
}
.tracker-metric {
  transition: color 0.3s, text-shadow 0.3s;
}
.tracker-card:hover .tracker-metric {
  text-shadow: 0 0 24px rgba(212,168,67,0.6);
}

/* ── 7. PLAN CARDS — efecto premium ── */
.plan-card {
  transition: transform 0.35s cubic-bezier(0.22,1,0.36,1),
              box-shadow 0.35s ease,
              border-left-color 0.3s;
}
.plan-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 60px rgba(0,0,0,0.6), 0 0 0 1px rgba(212,168,67,0.1);
}
.plan-card.destacado:hover {
  box-shadow: 0 20px 60px rgba(0,0,0,0.6), 0 0 40px rgba(212,168,67,0.12);
}

/* Brillo diagonal animado en plan destacado */
.plan-card.destacado::after {
  content: '';
  position: absolute;
  top: -50%; left: -60%;
  width: 40%; height: 200%;
  background: linear-gradient(
    105deg,
    transparent 40%,
    rgba(212,168,67,0.06) 50%,
    transparent 60%
  );
  transform: skewX(-15deg);
  animation: planShine 4s ease-in-out infinite;
}
@keyframes planShine {
  0%   { left: -60%; }
  50%  { left: 120%; }
  100% { left: 120%; }
}

/* ── 8. RESEÑAS — mejoradas ── */
.resena-card {
  position: relative;
  overflow: hidden;
  transition: transform 0.3s cubic-bezier(0.22,1,0.36,1),
              box-shadow 0.3s,
              border-top-color 0.3s;
}
.resena-card::before {
  content: '❝';
  position: absolute;
  top: 12px; right: 16px;
  font-size: 4rem;
  color: rgba(212,168,67,0.06);
  font-family: Georgia, serif;
  line-height: 1;
  pointer-events: none;
  transition: color 0.3s;
}
.resena-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 48px rgba(0,0,0,0.5);
}
.resena-card:hover::before {
  color: rgba(212,168,67,0.12);
}
.resena-stars {
  transition: letter-spacing 0.3s;
}
.resena-card:hover .resena-stars {
  letter-spacing: 6px;
  color: var(--dorado-suave);
}

/* ── 9. BOTONES mejorados ── */
.btn-primary {
  position: relative;
  overflow: hidden;
}
.btn-primary::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.08), transparent);
  opacity: 0;
  transition: opacity 0.3s;
}
.btn-primary:hover::after {
  opacity: 1;
}
.btn-primary:active {
  transform: translateY(0) scale(0.98);
}

.btn-ghost {
  position: relative;
  overflow: hidden;
}
.btn-ghost::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 100%; height: 1px;
  background: var(--dorado);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.35s cubic-bezier(0.22,1,0.36,1);
}
.btn-ghost:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* ── 10. CTA FINAL — brillo radial pulsante ── */
@keyframes ctaPulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(192,57,43,0);
    opacity: 0.5;
  }
  50% {
    opacity: 0.9;
  }
}
#cta-final::before {
  animation: ctaPulse 3s ease-in-out infinite;
}
#cta-final::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(212,168,67,0.04) 0%, transparent 70%);
  pointer-events: none;
  animation: ctaPulse 4s ease-in-out infinite reverse;
}

/* ── 11. BLOG CARDS mejoradas ── */
.blog-card {
  position: relative;
  transition: transform 0.35s cubic-bezier(0.22,1,0.36,1), box-shadow 0.35s;
}
.blog-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 50px rgba(0,0,0,0.6);
}
.blog-img-placeholder {
  transition: filter 0.4s ease;
  background: linear-gradient(135deg, #1a0505, #0f0f1a, #0a1a0f) !important;
}
.blog-card:hover .blog-img-placeholder {
  filter: brightness(1.2);
}
.blog-titulo {
  transition: color 0.2s;
}
.blog-card:hover .blog-titulo {
  color: var(--dorado-suave);
}

/* Barra de lectura progresiva en blog */
.blog-card::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 0; height: 2px;
  background: linear-gradient(90deg, var(--rojo), var(--dorado));
  transition: width 0.5s cubic-bezier(0.22,1,0.36,1);
}
.blog-card:hover::after {
  width: 100%;
}

/* ── 12. NAV — efecto scroll (se agrega clase via JS) ── */
nav.scrolled {
  background: rgba(5,5,5,0.98) !important;
  border-bottom-color: rgba(212,168,67,0.25) !important;
  box-shadow: 0 4px 30px rgba(0,0,0,0.5);
}
nav.scrolled .nav-links a {
  color: rgba(245,240,235,0.7);
}

/* ── 13. SLIDER dots mejorados ── */
.slider-dot {
  transition: transform 0.3s ease, background 0.3s;
}
.slider-dot.active {
  transform: scale(1.4);
}

/* ── 14. CONNECT BANNER animado ── */
.connect-banner {
  position: relative;
  overflow: hidden;
}
.connect-banner::after {
  content: '';
  position: absolute;
  top: -50%; left: -60%;
  width: 40%; height: 200%;
  background: linear-gradient(105deg, transparent 40%, rgba(212,168,67,0.04) 50%, transparent 60%);
  transform: skewX(-15deg);
  animation: planShine 5s ease-in-out infinite;
}

/* ── 15. SECTION TITLES — subrayado dorado animado ── */
.section-title {
  position: relative;
  display: inline-block;
}
.section-title::after {
  content: '';
  display: block;
  width: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--dorado), transparent);
  margin-top: 8px;
  transition: width 0.8s cubic-bezier(0.22,1,0.36,1);
}
section:hover .section-title::after,
.section-title.line-visible::after {
  width: 80px;
}

/* ── 16. SENECA BLOCK mejorado ── */
.seneca-block {
  position: relative;
  overflow: hidden;
}
.seneca-quote {
  transition: color 0.3s;
}
.seneca-block:hover .seneca-quote {
  color: rgba(245,240,235,0.9);
}

/* ── 17. SEPARADOR entre secciones ── */
.section-divider {
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(212,168,67,0.2) 30%,
    rgba(212,168,67,0.4) 50%,
    rgba(212,168,67,0.2) 70%,
    transparent 100%
  );
  margin: 0;
}

/* ── 18. SCROLL TO TOP BUTTON ── */
#scrollTopBtn {
  position: fixed;
  bottom: 96px; right: 24px;
  width: 44px; height: 44px;
  background: rgba(10,10,10,0.9);
  border: 1px solid rgba(212,168,67,0.4);
  color: var(--dorado);
  font-size: 1.1rem;
  cursor: pointer;
  z-index: 90;
  display: flex; align-items: center; justify-content: center;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.3s, transform 0.3s, background 0.2s;
  pointer-events: none;
  backdrop-filter: blur(8px);
}
#scrollTopBtn.visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: all;
}
#scrollTopBtn:hover {
  background: rgba(212,168,67,0.15);
}

/* ── 19. LOADING shimmer para imágenes ── */
@keyframes shimmer {
  0%   { background-position: -400px 0; }
  100% { background-position: 400px 0; }
}
.blog-img-placeholder {
  background-size: 800px 100% !important;
}

/* ── 20. CURSOR spotlight (solo desktop) ── */
@media (pointer: fine) {
  .plan-card, .resena-card, .tracker-card, .pilar, .blog-card {
    --mouse-x: 50%;
    --mouse-y: 50%;
  }
  .plan-card::before,
  .resena-card::after,
  .tracker-card::after {
    background: radial-gradient(
      circle 200px at var(--mouse-x) var(--mouse-y),
      rgba(212,168,67,0.04),
      transparent
    );
  }
}

/* ═══════════════════════════════════════════════════════
   DESBLOQUEO POST-PAGO — expediente + briefing
   ═══════════════════════════════════════════════════════ */
#desbloqueoOverlay {
  display: none;
  position: fixed; inset: 0;
  z-index: 2000;
  background:
    linear-gradient(rgba(8,8,8,0.84), rgba(8,8,8,0.92)),
    url('Imagenes/Planes/marines_e9ddc1bf3f5a4d1abf675303f54a6e3f.jpg');
  background-size: cover;
  background-position: center;
  backdrop-filter: blur(2px);
  overflow-y: auto;
}
#desbloqueoOverlay.activo { display: flex; align-items: center; justify-content: center; padding: 24px; }
#desbloqueoOverlay.briefing { align-items: flex-start; }

/* ── Etapa 1: expediente ── */
.dsb-expediente { text-align: center; max-width: 460px; animation: dsbIn .5s ease; }
@keyframes dsbIn { from { opacity: 0; transform: scale(.92); } to { opacity: 1; transform: scale(1); } }
.dsb-logo {
  width: 320px; max-width: 86%; margin-bottom: 26px;
  filter: drop-shadow(0 0 18px rgba(212,168,67,.5));
  animation: dsbLogo .6s ease .15s both;
}
@keyframes dsbLogo { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

.dsb-sello-wrap { position: relative; height: 72px; margin: 6px 0 16px; }
.dsb-sello-clasif, .dsb-sello-ok {
  position: absolute; left: 50%; top: 50%;
  transform: translate(-50%,-50%) rotate(-9deg);
  font-family: 'Barlow Condensed', sans-serif; font-weight: 700;
  letter-spacing: 3px; text-transform: uppercase;
  padding: 8px 22px; border-radius: 4px; white-space: nowrap;
}
.dsb-sello-clasif {
  color: #c0392b; border: 3px solid #c0392b; font-size: 1.4rem;
  animation: dsbClasifIn .5s ease .5s both, dsbClasifOut .35s ease 1.65s forwards;
}
@keyframes dsbClasifIn { from { opacity: 0; transform: translate(-50%,-50%) rotate(-9deg) scale(1.6); } to { opacity: 1; transform: translate(-50%,-50%) rotate(-9deg) scale(1); } }
@keyframes dsbClasifOut { to { opacity: 0; } }
.dsb-sello-ok {
  color: #27ae60; border: 3px solid #27ae60; font-size: 1.5rem; opacity: 0;
  animation: dsbOk .45s cubic-bezier(.2,1.4,.4,1) 1.95s both;
}
@keyframes dsbOk { from { opacity: 0; transform: translate(-50%,-50%) rotate(-9deg) scale(2.3); } to { opacity: 1; transform: translate(-50%,-50%) rotate(-9deg) scale(1); } }

.dsb-acento {
  font-family: 'Bebas Neue', sans-serif; font-size: 2.2rem; color: #f5f0eb;
  letter-spacing: 2px; opacity: 0; animation: dsbUp .5s ease 2.5s both;
}
@keyframes dsbUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
.dsb-continuar { margin-top: 26px; opacity: 0; animation: dsbUp .5s ease 3s both; }

/* ── Etapa 2: briefing ── */
.dsb-briefing { max-width: 640px; margin: 0 auto; padding: 44px 24px 64px; text-align: center; animation: dsbIn .4s ease; }
.dsb-briefing-logo { width: 150px; margin-bottom: 18px; filter: drop-shadow(0 0 10px rgba(212,168,67,.4)); }
.dsb-briefing-t { font-family: 'Bebas Neue', sans-serif; font-size: 2.4rem; color: #f5f0eb; margin: 0 0 6px; letter-spacing: 1px; }
.dsb-briefing-sub { color: #9aa0a6; margin: 0 0 24px; }
.dsb-video { position: relative; width: 100%; padding-bottom: 56.25%; border-radius: 10px; overflow: hidden; margin-bottom: 26px; border: 1px solid rgba(212,168,67,.3); }
.dsb-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.dsb-video-vacio { padding-bottom: 0; height: 200px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; background: #1a1a1a; color: #9aa0a6; }
.dsb-video-vacio i { font-size: 2.4rem; color: #c0392b; }
.dsb-pasos { text-align: left; max-width: 480px; margin: 0 auto 28px; padding-left: 22px; color: #9aa0a6; line-height: 1.7; }
.dsb-pasos li { margin-bottom: 10px; }
.dsb-pasos strong { color: #f5f0eb; }
.dsb-listo { display: inline-block; }

@media (max-width: 600px) {
  .dsb-acento { font-size: 1.7rem; }
  .dsb-briefing-t { font-size: 2rem; }
}

/* ============================================
   EFECTOS PREMIUM — Aurora reactiva + Tilt 3D
   ============================================ */

/* Registramos las variables para que puedan animarse suavemente (móvil). */
@property --mx { syntax: "<percentage>"; inherits: false; initial-value: 50%; }
@property --my { syntax: "<percentage>"; inherits: false; initial-value: 38%; }
@property --lx { syntax: "<percentage>"; inherits: false; initial-value: 50%; }
@property --ly { syntax: "<percentage>"; inherits: false; initial-value: 50%; }

/* Aurora dorada sobre un fondo negro plano.
   Vive detrás del contenido (z0); el contenido se eleva a z1. */
.section-aurora {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  mix-blend-mode: screen;
  background:
    radial-gradient(300px 300px at var(--mx, 50%) var(--my, 38%), rgba(212,168,67,0.30), transparent 60%),
    radial-gradient(360px 360px at 88% 118%, rgba(192,57,43,0.10), transparent 60%);
  transition: background 0.12s ease;
}
/* Contenido por encima del overlay linterna (z:1) */
#cta-final > *:not(.section-aurora):not(#ctaLinterna) { position: relative; z-index: 2; }

/* Overlay linterna: casi negro con foco transparente siguiendo cursor/touch */
#ctaLinterna {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: radial-gradient(
    ellipse 300px 240px at var(--lx, 50%) var(--ly, 50%),
    rgba(0,0,0,0.00)  0%,
    rgba(0,0,0,0.00) 12%,
    rgba(0,0,0,0.60) 42%,
    rgba(0,0,0,0.93) 66%,
    rgba(0,0,0,0.98) 100%
  );
}

/* ── TARJETA-CANDADO PREMIUM (gating de plan: Fuerza / Potencia) ── */
.plan-lock {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  margin: 4px 16px 12px;
  padding: 28px 20px;
  text-align: center;
  border: 1px solid rgba(212,168,67,0.3);
  border-radius: 12px;
  background: #0c0c0c;
}
.plan-lock .pl-aura {
  position: absolute;
  inset: -40%;
  z-index: 0;
  pointer-events: none;
  mix-blend-mode: screen;
  background:
    radial-gradient(300px 300px at 50% 42%, rgba(212,168,67,0.28), transparent 60%),
    radial-gradient(360px 360px at 80% 110%, rgba(192,57,43,0.12), transparent 60%);
  animation: auroraDrift 12s ease-in-out infinite alternate;
}
.plan-lock > *:not(.pl-aura) { position: relative; z-index: 1; }
.pl-ic {
  width: 46px; height: 46px; border-radius: 50%;
  border: 1px solid rgba(212,168,67,0.45);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 13px;
}
.pl-ic svg { width: 22px; height: 22px; stroke: #d4a843; }
.pl-title {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1.6rem; letter-spacing: 1.5px; color: #f5f0eb; line-height: 1;
}
.pl-title span { color: #d4a843; }
.pl-sub {
  font-size: 13px; color: #9a948c; line-height: 1.5;
  max-width: 260px; margin: 9px auto 17px;
}
.pl-btn {
  background: #d4a843; color: #0a0a0a;
  font-family: 'Barlow Condensed', sans-serif; font-weight: 700;
  text-transform: uppercase; letter-spacing: 2px;
  border: none; padding: 12px 26px; font-size: 14px;
  border-radius: 7px; cursor: pointer;
  box-shadow: 0 4px 16px rgba(212,168,67,0.35);
}
/* Gating: contenido real oculto hasta que el plan esté activo */
.plan-gated { display: none; }
body.plan-activo .plan-gated { display: block; }
body.plan-activo .plan-lock  { display: none; }
@media (prefers-reduced-motion: reduce) { .plan-lock .pl-aura { animation: none; } }

/* En pantallas táctiles (móvil) no hay cursor: la aurora deriva sola.
   Animamos transform (soporte universal), NO variables CSS (@property
   no está disponible en muchos navegadores móviles). */
@media (hover: none), (pointer: coarse) {
  .section-aurora { animation: auroraDrift 12s ease-in-out infinite alternate; }
  /* En el CTA final el aurora no deriva — la linterna lo gobierna via JS touchmove */
  #ctaAurora { animation: none; }
}
@keyframes auroraDrift {
  0%   { transform: translate(-14%, -10%) scale(1.05); }
  50%  { transform: translate(12%, 8%)   scale(1.12); }
  100% { transform: translate(10%, -8%)  scale(1.05); }
}

/* Tarjetas 3D: durante el tilt acortamos la transición de transform
   para que el seguimiento sea inmediato (sin lag). */
.area-card.tilting,
.plan-card.tilting {
  transition: transform 0.05s linear, border-color 0.2s, box-shadow 0.2s;
  will-change: transform;
}

/* Brillo direccional dorado dentro de la tarjeta (sigue al cursor). */
.area-card::before,
.plan-card::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.25s ease;
  background: radial-gradient(180px 180px at var(--cx, 50%) var(--cy, 50%), rgba(212,168,67,0.16), transparent 60%);
}
.area-card:hover::before,
.plan-card:hover::before { opacity: 1; }

/* Reflejo dorado que barre la tarjeta en diagonal (alternativa móvil al glow). */
.area-card::after,
.plan-card::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  left: -65%;
  width: 55%;
  z-index: 5;
  pointer-events: none;
  opacity: 0;
  mix-blend-mode: screen;
  transform: skewX(-18deg);
  background: linear-gradient(100deg,
    transparent,
    rgba(212,168,67,0.20),
    rgba(255,240,200,0.34),
    rgba(212,168,67,0.20),
    transparent);
}

/* Móvil/táctil: el reflejo se reproduce solo, lento y escalonado. */
@media (hover: none), (pointer: coarse) {
  .area-card::after,
  .plan-card::after { animation: cardShine 5s ease-in-out infinite; }
  .area-card:nth-child(3n+2)::after,
  .plan-card:nth-child(3n+2)::after { animation-delay: 1.6s; }
  .area-card:nth-child(3n+3)::after,
  .plan-card:nth-child(3n+3)::after { animation-delay: 3.2s; }
}

/* Escritorio: un destello al pasar el cursor (complementa el glow). */
@media (hover: hover) {
  .area-card:hover::after,
  .plan-card:hover::after { animation: cardShine 1.1s ease-out; }
}

@keyframes cardShine {
  0%   { left: -65%; opacity: 0; }
  10%  { opacity: 1; }
  45%  { left: 125%; opacity: 0; }
  100% { left: 125%; opacity: 0; }
}

/* Accesibilidad: desactivar movimiento en usuarios sensibles. */
@media (prefers-reduced-motion: reduce) {
  .section-aurora { display: none; }
  .area-card.tilting,
  .plan-card.tilting { transform: none !important; }
}

/* ══════════════════════════════════════════════════════════════
   FRASE MOTIVACIONAL · PROTAGONISTA (cristal + 3D + entrada)
   PLACA MILITAR: metal bruñido + texto gravado + brillo de patrulla.
   Overlay cinema aparece al abrir el panel, luego se retira.
   ══════════════════════════════════════════════════════════════ */
  #dashboardAtleta { overflow-x: hidden; }

  /* ── Placa inline: imagen real PNG dog-tag ── */
  #dashboardAtleta.open .dash-frase-wrap {
    position: relative !important;
    background: none !important;
    border: none !important;
    border-left: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    aspect-ratio: 1929 / 1047 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    animation: placaEntra 0.55s cubic-bezier(.22,.84,.34,1) 0.15s both !important;
  }
  #dashboardAtleta.open .dash-frase-wrap::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background-image: url('Imagenes/placa-dorada.png?v=2') !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    transform: rotate(180deg) !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    top: 0 !important; left: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  #dashboardAtleta.open .dash-frase-wrap::after { display: none !important; }
  #dashboardAtleta.open .dash-frase-hole { display: none !important; }
  #dashboardAtleta.open .dash-frase-wrap > * { position: relative !important; z-index: 2 !important; }
  #dashboardAtleta.open .dash-frase {
    font-family: 'Courier New', monospace !important;
    font-size: clamp(13px, 4vw, 18px) !important;
    font-weight: 700 !important;
    font-style: normal !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    line-height: 1.65 !important;
    color: rgba(30, 15, 0, 0.92) !important;
    text-shadow:
      0 -1.5px 0 rgba(255,240,110,0.80),
      0  1px   2px rgba(0,0,0,0.70),
      0  2px   5px rgba(0,0,0,0.40) !important;
    padding: 0 10% 0 20% !important;
    margin-bottom: 0 !important;
    text-align: center !important;
    width: 100% !important;
    box-sizing: border-box !important;
    flex: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  #dashboardAtleta.open .dash-frase-autor {
    position: absolute !important;
    bottom: 10% !important;
    right: 12% !important;
    font-family: 'Courier New', monospace !important;
    font-size: clamp(11px, 2vw, 13px) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 1.5px !important;
    color: rgba(30, 15, 0, 0.78) !important;
    text-shadow:
      0 -1px 0 rgba(255,240,110,0.65),
      0  1px 1px rgba(0,0,0,0.55) !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: right !important;
  }

  @keyframes placaEntra {
    0%   { opacity: 0; transform: perspective(600px) translateY(10px) rotateX(5deg) scale(0.97); }
    100% { opacity: 1; transform: perspective(600px) translateY(0)    rotateX(0)    scale(1);    }
  }

  /* ── Overlay cinema: placa a pantalla completa al abrir el panel ── */
  #fraseOverlay {
    position: fixed;
    inset: 0;
    z-index: 9998;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 12px 16px;
    background: rgba(0,0,0,0);
    animation: fovEntra 0.55s ease both;
  }
  #fraseOverlay.saliendo {
    animation: fovSale 0.55s ease both;
    pointer-events: none;
  }
  @keyframes fovEntra { to { background: rgba(0,0,0,0.95); } }
  @keyframes fovSale  { from { opacity: 1; } to { opacity: 0; } }

  /* ── Overlay cinema: placa dog-tag imagen real ── */
  .fop-placa {
    position: relative;
    width: min(98vw, 660px);
    aspect-ratio: 1929 / 1047;
    animation: placaEntra 0.75s cubic-bezier(.16,.84,.34,1) 0.35s both;
  }
  .fop-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transform: rotate(180deg);
    pointer-events: none;
  }
  .fop-content {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 8% 10% 8% 20%;
    box-sizing: border-box;
  }
  .fop-texto {
    font-family: 'Courier New', monospace;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 700;
    font-size: clamp(15px, 4.8vw, 22px);
    line-height: 1.7;
    color: rgba(18, 8, 0, 0.95);
    text-shadow:
      0 -1.5px 0   rgba(255, 225, 80, 0.90),
      0  1px   3px rgba(0, 0, 0, 0.95),
      0  3px   7px rgba(0, 0, 0, 0.60);
    margin-bottom: 0;
    text-align: center;
    width: 100%;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .fop-divider {
    display: none;
  }
  .fop-autor {
    position: absolute;
    bottom: 10%;
    right: 12%;
    font-family: 'Courier New', monospace;
    font-size: clamp(11px, 1.8vw, 14px);
    letter-spacing: 2px;
    font-weight: 700;
    text-transform: uppercase;
    color: rgba(18, 8, 0, 0.88);
    text-shadow:
      0 -1px 0   rgba(255, 225, 80, 0.75),
      0  1px 2px rgba(0, 0, 0, 0.90),
      0  2px 5px rgba(0, 0, 0, 0.55);
    margin: 0;
    text-align: right;
  }
  .fop-hint {
    margin-top: 32px;
    display: flex;
    justify-content: center;
    animation: fopBlink 1.8s ease-in-out infinite;
  }
  .fop-hint-logo {
    width: 230px;
    mix-blend-mode: screen;
    filter: drop-shadow(0 0 10px rgba(201,168,76,0.55)) drop-shadow(0 0 32px rgba(201,168,76,0.25));
  }
  @keyframes fopBlink { 0%,100% { opacity: 0.35; } 50% { opacity: 1; } }

  @media (prefers-reduced-motion: reduce) {
    #dashboardAtleta.open .dash-frase-wrap,
    .fop-placa { animation: none !important; }
  }

/* ══════════════════════════════════════════════════════════════
   PANEL ATLETA · SUPERFICIE NEGRA (override del tema claro)
   Negro absoluto + cian más vivo/marcado; blanco, rojo y dorado
   saltan sobre el negro. Capa al final = fácil de revertir.
   Especificidad #dashboardAtleta gana a las reglas .clase!important.
   ══════════════════════════════════════════════════════════════ */

  /* Superficies base */
  #dashboardAtleta            { background: #000 !important; }
  #dashboardAtleta .dashboard-box { background: #000 !important; }

  /* Perfil + saludo + nombre + avatar */
  #dashboardAtleta .dash-profile      { background: transparent !important; border-bottom: 1px solid rgba(255,255,255,0.06) !important; }
  #dashboardAtleta .dash-nombre       { color: #f5f0eb !important; }
  #dashboardAtleta .dash-saludo       { color: #00e5f0 !important; }
  #dashboardAtleta .dash-avatar-circle{ background: linear-gradient(135deg,#00e5f0,#007a85) !important; border: 2px solid rgba(0,229,240,0.4) !important; }

  /* Títulos de sección: barra cian, texto rojo de marca */
  #dashboardAtleta .dash-section-title          { color: #e74c3c !important; }
  #dashboardAtleta .dash-section-title::before   { background: #00e5f0 !important; }

  /* Tarjetas genéricas: near-black con borde sutil */
  #dashboardAtleta .dash-connect-card,
  #dashboardAtleta .dash-stats-row .dash-stat-cell,
  #dashboardAtleta .dash-metric-card,
  #dashboardAtleta .dash-chart-card,
  #dashboardAtleta .dash-zones-card,
  #dashboardAtleta .dash-nutri-banner,
  #dashboardAtleta .dash-macro-card,
  #dashboardAtleta .login-box,
  #dashboardAtleta .th-pr-stat,
  #dashboardAtleta .th-working-max,
  #dashboardAtleta .th-csv-empty,
  #dashboardAtleta .csv-upload-zone   { background: #0d0d0d !important; border-color: rgba(212,168,67,0.40) !important; }

  #dashboardAtleta .dash-connect-card { border: 1px solid rgba(212,168,67,0.40) !important; }
  #dashboardAtleta .dash-connect-card:hover { background: rgba(212,168,67,0.06) !important; border-color: rgba(212,168,67,0.7) !important; }
  #dashboardAtleta .dash-metric-card:hover  { background: #131313 !important; border-color: rgba(212,168,67,0.7) !important; }
  #dashboardAtleta .dash-metric-card,
  #dashboardAtleta .dash-stats-row .dash-stat-cell { border: 1px solid rgba(212,168,67,0.40) !important; }

  /* Contenedores de gráficos */
  #dashboardAtleta .th-chart-container { background: #0a0a0a !important; border: 1px solid rgba(212,168,67,0.40) !important; box-shadow: none !important; }
  #dashboardAtleta .th-divider         { background: rgba(255,255,255,0.08) !important; }

  /* Texto: oscuro -> claro */
  #dashboardAtleta .dash-stat-value,
  #dashboardAtleta .dash-activity-name,
  #dashboardAtleta .dash-zone-time,
  #dashboardAtleta .dash-macro-value,
  #dashboardAtleta .dash-connect-name,
  #dashboardAtleta .dash-nutri-text strong,
  #dashboardAtleta .th-rm-kg,
  #dashboardAtleta .th-ex-name,
  #dashboardAtleta .login-title,
  #dashboardAtleta .th-chart-title,
  #dashboardAtleta .dash-chart-title   { color: #f5f0eb !important; }

  #dashboardAtleta .dash-stat-unit,
  #dashboardAtleta .dash-metric-unit,
  #dashboardAtleta .dash-activity-date,
  #dashboardAtleta .dash-zone-label,
  #dashboardAtleta .dash-zone-pct,
  #dashboardAtleta .dash-macro-name,
  #dashboardAtleta .dash-nutri-text span,
  #dashboardAtleta .th-sets-table td,
  #dashboardAtleta .th-ex-meta,
  #dashboardAtleta .th-rm-rep,
  #dashboardAtleta .th-rm-unit,
  #dashboardAtleta .th-pr-stat-label,
  #dashboardAtleta .th-pr-stat-sub,
  #dashboardAtleta .th-wm-label,
  #dashboardAtleta .th-wm-unit,
  #dashboardAtleta .th-chart-subtitle,
  #dashboardAtleta .dash-chart-title span { color: #b8b0a6 !important; }

  /* Acentos cian más vivos (eran teal apagados) */
  #dashboardAtleta .dash-stat-label,
  #dashboardAtleta .dash-metric-label,
  #dashboardAtleta .dash-metric-note,
  #dashboardAtleta .dash-macro-meta,
  #dashboardAtleta .th-ex-max,
  #dashboardAtleta .th-pr-stat-value,
  #dashboardAtleta .th-wm-value,
  #dashboardAtleta .dash-connect-status,
  #dashboardAtleta .login-sub          { color: #00e5f0 !important; }

  /* Acentos dorado (los que ya eran dorado se mantienen) */
  #dashboardAtleta .dash-metric-value  { color: #d4a843 !important; }
  #dashboardAtleta .th-pr-stat.best .th-pr-stat-value,
  #dashboardAtleta .th-rm-cell.best .th-rm-kg { color: #f0c060 !important; }

  /* Tablas / celdas sutiles sobre negro */
  #dashboardAtleta .th-sets-table th   { color: rgba(255,255,255,0.45) !important; border-bottom-color: rgba(255,255,255,0.08) !important; }
  #dashboardAtleta .th-sets-table td   { border-bottom-color: rgba(255,255,255,0.06) !important; }
  #dashboardAtleta .th-rm-cell,
  #dashboardAtleta .th-ex-card,
  #dashboardAtleta .th-exercise-btn    { background: rgba(255,255,255,0.04) !important; border-color: rgba(255,255,255,0.08) !important; }
  #dashboardAtleta .th-ex-name         { color: #f5f0eb !important; }
  #dashboardAtleta .th-exercise-btn    { color: #b8b0a6 !important; }
  #dashboardAtleta .th-zone-bar-bg,
  #dashboardAtleta .dash-zone-bar-bg   { background: rgba(255,255,255,0.08) !important; }

  /* Botones de rango/distancia: cian vivo sobre negro */
  #dashboardAtleta .th-range-btn,
  #dashboardAtleta .th-dist-btn        { background: rgba(0,200,212,0.10) !important; border: 1.5px solid rgba(0,200,212,0.4) !important; color: #00e5f0 !important; }
  #dashboardAtleta .th-range-btn.active,
  #dashboardAtleta .th-dist-btn.active { background: rgba(0,229,240,0.22) !important; color: #aef6fb !important; border-color: #00e5f0 !important; box-shadow: 0 2px 12px rgba(0,229,240,0.25) !important; }

  /* Inputs sobre negro */
  #dashboardAtleta .csv-map-select,
  #dashboardAtleta .login-input        { background: #161616 !important; border: 1px solid rgba(255,255,255,0.14) !important; color: #f5f0eb !important; }
  #dashboardAtleta .login-input:focus,
  #dashboardAtleta .csv-map-select:focus { border-color: #00e5f0 !important; }

  /* Ejes de gráficos (canvas): texto claro sobre negro */
  #dashboardAtleta canvas,
  #dashboardAtleta .chartjs-render-monitor { color: #cfc9c1 !important; }

  /* ── Tarjetas con blanco EN LÍNEA (HTML) → negras ──
     Captura los <div style="background:#fff…"> de las secciones
     (Endurance, etc.) que no tienen clase. !important gana al inline. */
  #dashboardAtleta [style*="background:#fff"],
  #dashboardAtleta [style*="background:#ffffff"],
  #dashboardAtleta [style*="background: #fff"],
  #dashboardAtleta [style*="background:#f7f7f7"],
  #dashboardAtleta [style*="background:#f5f5f5"],
  #dashboardAtleta [style*="background:#f5f7f8"],
  #dashboardAtleta [style*="background:#f5f9fa"],
  #dashboardAtleta [style*="background: rgb(255"],
  #dashboardAtleta [style*="background:rgb(255"] { background: #0d0d0d !important; }

  /* Texto gris EN LÍNEA → blanco (oscuros) / claro (secundarios) */
  #dashboardAtleta [style*="color:#333"],
  #dashboardAtleta [style*="color: #333"],
  #dashboardAtleta [style*="color:#222"],
  #dashboardAtleta [style*="color:#444"],
  #dashboardAtleta [style*="color:#1a1a1a"],
  #dashboardAtleta [style*="color: rgb(26"],
  #dashboardAtleta [style*="color: rgb(51"],
  #dashboardAtleta [style*="color: rgb(17"] { color: #f5f0eb !important; }
  #dashboardAtleta [style*="color:#999"],
  #dashboardAtleta [style*="color:#888"],
  #dashboardAtleta [style*="color:#aaa"],
  #dashboardAtleta [style*="color:#bbb"],
  #dashboardAtleta [style*="color:#666"],
  #dashboardAtleta [style*="color:#5c5650"],
  #dashboardAtleta [style*="color:#5c"],
  #dashboardAtleta [style*="color:rgba(0,0,0"] { color: #cfc9c1 !important; }

  /* Textos de énfasis casi-negros / rojo oscuro inline → legibles */
  #dashboardAtleta [style*="color:#26221d"] { color: #f0c060 !important; }
  #dashboardAtleta [style*="color:#8B1A1A"] { color: #e74c3c !important; }

  /* ── HALO DORADO sutil y MUY lento alrededor de las tarjetas ── */
  @keyframes meAuraDorada {
    0%, 100% { box-shadow: 0 0 0 1px rgba(212,168,67,0.28), 0 0 8px rgba(212,168,67,0.05); }
    50%      { box-shadow: 0 0 0 1px rgba(212,168,67,0.55), 0 0 18px rgba(212,168,67,0.18); }
  }
  #dashboardAtleta .dash-chart-card,
  #dashboardAtleta .dash-zones-card,
  #dashboardAtleta .dash-metric-card,
  #dashboardAtleta .th-chart-container,
  #dashboardAtleta .dash-connect-card,
  #dashboardAtleta .dash-nutri-banner,
  #dashboardAtleta .dash-macro-card,
  #dashboardAtleta [style*="border-radius:8px"]:not(#histOverlay *),
  #dashboardAtleta [style*="border-radius:10px"]:not(#histOverlay *),
  #dashboardAtleta [style*="border-radius:12px"]:not(#histOverlay *) {
    animation: meAuraDorada 7s ease-in-out infinite;
  }

  @media (prefers-reduced-motion: reduce) {
    #dashboardAtleta .dash-chart-card,
    #dashboardAtleta .dash-zones-card,
    #dashboardAtleta .dash-metric-card,
    #dashboardAtleta .th-chart-container,
    #dashboardAtleta .dash-connect-card,
    #dashboardAtleta .dash-nutri-banner,
    #dashboardAtleta .dash-macro-card,
    #dashboardAtleta [style*="border-radius:8px"],
    #dashboardAtleta [style*="border-radius:10px"],
    #dashboardAtleta [style*="border-radius:12px"] { animation: none !important; }
  }

  /* ── HOMOLOGAR INPUTS: todas las cajas de datos en oscuro ──
     Atrapa inputs nativos (blancos por defecto) y los de estilo claro,
     en todas las secciones (Potencia, Test de Campo, Rucking, perfil…). */
  #dashboardAtleta input,
  #dashboardAtleta select,
  #dashboardAtleta textarea {
    background: #161616 !important;
    color: #f5f0eb !important;
    border: 1px solid rgba(212,168,67,0.28) !important;
  }
  #dashboardAtleta input::placeholder,
  #dashboardAtleta textarea::placeholder { color: #7d766c !important; }
  #dashboardAtleta input:focus,
  #dashboardAtleta select:focus,
  #dashboardAtleta textarea:focus { border-color: #00e5f0 !important; outline: none !important; }

  /* ── FONDO DE LAS SECCIONES → NEGRO ──
     El cuerpo de cada acordeon era gris claro (#f2f4f5): rodeaba las
     tarjetas de blanco y ocultaba el contorno dorado (dorado sobre claro
     no contrasta). En negro, el contorno dorado de cada tarjeta resalta. */
  #dashboardAtleta .me-accord-body { background: #000 !important; }

  /* Tarjeta candado "Desbloquea": texto mas claro para que no se confunda */
  #dashboardAtleta .pl-sub { color: #cfc9c1 !important; }
  #dashboardAtleta .pl-title { color: #ffffff !important; }

  /* Botones de mes (Volumen total mensual): letras blancas */
  #dashboardAtleta #resMesSelector button { color: #ffffff !important; }

  /* ── Récords Personales / Ingreso manual: paneles claros (por CLASE) → oscuros ── */
  #dashboardAtleta .manual-entry-panel { background: #0d0d0d !important; border-color: rgba(212,168,67,0.25) !important; }
  #dashboardAtleta .manual-dist-item   { background: rgba(255,255,255,0.04) !important; border-color: rgba(255,255,255,0.08) !important; }
  #dashboardAtleta .manual-entry-title { color: #00e5f0 !important; }
  #dashboardAtleta .manual-dist-label  { color: #00e5f0 !important; }
  #dashboardAtleta .manual-time-input,
  #dashboardAtleta .manual-date-input  { background: #161616 !important; color: #f5f0eb !important; border-color: rgba(212,168,67,0.28) !important; }
  #dashboardAtleta [style*="background:#f8f9fa"],
  #dashboardAtleta [style*="background:#f7f9fa"] { background: #0d0d0d !important; }

  /* ══════════════════════════════════════════════════════════
     ME DESIGN SYSTEM · Panel atleta negro
     Tarjetas · Deltas · Zonas · Sweep · Micro-interacciones
  ══════════════════════════════════════════════════════════ */

  /* ── 1. Zona FC: paleta de marca en superficie negra ── */
  #dashboardAtleta .dash-zone-z5 { background: #c0392b !important; }
  #dashboardAtleta .dash-zone-z4 { background: #e07b00 !important; }
  #dashboardAtleta .dash-zone-z3 { background: #27ae60 !important; }
  #dashboardAtleta .dash-zone-z2 { background: #00e5f0 !important; }
  #dashboardAtleta .dash-zone-z1 { background: rgba(255,255,255,0.22) !important; }

  /* ── 2. Accent border-top cian en tarjetas de datos del panel ── */
  #dashboardAtleta .dash-chart-card,
  #dashboardAtleta .th-chart-container,
  #dashboardAtleta .dash-zones-card {
    position: relative !important;
    overflow: hidden !important;
  }
  #dashboardAtleta .dash-chart-card::before,
  #dashboardAtleta .th-chart-container::before,
  #dashboardAtleta .dash-zones-card::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0;
    height: 2px; pointer-events: none; z-index: 2;
    background: linear-gradient(90deg, #00e5f0 0%, rgba(0,229,240,0) 70%);
  }

  /* ── 3. Delta de tendencia semanal ── */
  .me-delta {
    display: inline-block;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 9px; letter-spacing: 1.5px; text-transform: uppercase;
    padding: 2px 7px; border-radius: 3px; font-weight: 700; margin-top: 3px;
  }
  .me-delta.up   { background: rgba(39,174,96,0.15);  color: #27ae60; border: 1px solid rgba(39,174,96,0.25); }
  .me-delta.down { background: rgba(192,57,43,0.15);  color: #e74c3c; border: 1px solid rgba(192,57,43,0.25); }
  .me-delta.flat { background: rgba(255,255,255,0.05); color: #888;   border: 1px solid rgba(255,255,255,0.1); }

  /* ── 4. Input focus ring cian (adicional al border) ── */
  #dashboardAtleta input:focus,
  #dashboardAtleta select:focus,
  #dashboardAtleta textarea:focus {
    box-shadow: 0 0 0 3px rgba(0,229,240,0.1) !important;
  }

  /* ── 5. Stat cells: hover lift suave ── */
  #dashboardAtleta .dash-stat-cell {
    transition: background .2s ease !important;
    cursor: default;
  }
  #dashboardAtleta .dash-stat-cell:hover {
    background: rgba(0,229,240,0.04) !important;
  }

  /* ── 6. Sweep shine para nivel Élite (rkFTP) ── */
  @keyframes me-sweep {
    0%       { left: -60%; }
    55%,100% { left: 130%; }
  }
  .me-sweep-wrap { position: relative !important; overflow: hidden !important; }
  .me-sweep-wrap .me-shine {
    position: absolute; top: 0; left: -60%; width: 50%; height: 100%;
    pointer-events: none;
    background: linear-gradient(105deg, transparent, rgba(255,255,255,0.13), transparent);
    animation: me-sweep 2.4s ease 0.5s infinite;
  }

  /* ── 7. Stamp-in: sello de nivel con rebote (rkFTP) ── */
  @keyframes me-stampIn {
    0%   { opacity: 0; transform: scale(1.8) rotate(-10deg); }
    60%  { opacity: 1; transform: scale(0.94) rotate(-4deg); }
    100% { opacity: 1; transform: scale(1) rotate(-3deg); }
  }
  .me-stamp-in { animation: me-stampIn .5s cubic-bezier(0.34,1.56,0.64,1) both !important; }

  /* ── 8. CardIn: entrada de secciones al abrir acordeón ── */
  @keyframes me-cardIn {
    from { opacity: 0; transform: translateY(12px) scale(0.987); }
    to   { opacity: 1; transform: none; }
  }
  @media (prefers-reduced-motion: no-preference) {
    #dashboardAtleta .me-accord-body.is-open > *:nth-child(1) { animation: me-cardIn .42s cubic-bezier(.22,1,.36,1) both; }
    #dashboardAtleta .me-accord-body.is-open > *:nth-child(2) { animation: me-cardIn .42s cubic-bezier(.22,1,.36,1) .06s both; }
    #dashboardAtleta .me-accord-body.is-open > *:nth-child(3) { animation: me-cardIn .42s cubic-bezier(.22,1,.36,1) .12s both; }
    #dashboardAtleta .me-accord-body.is-open > *:nth-child(4) { animation: me-cardIn .42s cubic-bezier(.22,1,.36,1) .18s both; }
  }

  /* ── 9. Zona-bar bg más sutil en panel negro ── */
  #dashboardAtleta .dash-zone-bar-bg { background: rgba(255,255,255,0.06) !important; height: 6px !important; border-radius: 4px !important; }
  #dashboardAtleta .dash-zone-bar-fill { border-radius: 4px !important; }

  /* ══════════════════════════════════════════════════════════
     DASHBOARD DE TARJETAS · reemplaza el acordeón
     Home = grid de accesos; tocar entra a la sección con back bar
  ══════════════════════════════════════════════════════════ */
  /* Grid de tarjetas de acceso */
  #dashboardAtleta .dash-cardnav { display:grid; grid-template-columns:1fr 1fr; gap:11px; padding:14px 16px 8px; }
  #dashboardAtleta .dash-navcard {
    background:#0d0d0d; border:1px solid rgba(212,168,67,0.3); border-radius:14px;
    padding:15px 14px 13px; cursor:pointer; position:relative; overflow:hidden;
    display:flex; flex-direction:column; gap:9px; min-height:120px;
    transition:transform .18s cubic-bezier(.22,1,.36,1), border-color .2s, box-shadow .2s;
    animation: me-cardIn .42s cubic-bezier(.22,1,.36,1) both;
  }
  #dashboardAtleta .dash-navcard::before { content:''; position:absolute; top:0; left:0; right:0; height:2px;
    background:linear-gradient(90deg, var(--nav-accent, #00e5f0), transparent 72%); }
  #dashboardAtleta .dash-navcard:hover { transform:translateY(-3px); border-color:rgba(0,229,240,0.55);
    box-shadow:0 8px 22px rgba(0,229,240,0.12); }
  #dashboardAtleta .dash-navcard:active { transform:scale(.98); }
  #dashboardAtleta .dash-navcard-icon { width:40px; height:40px; display:flex; align-items:center; justify-content:center;
    border-radius:10px; background:rgba(255,255,255,0.04); }
  #dashboardAtleta .dash-navcard-icon svg { width:25px; height:25px; }
  #dashboardAtleta .dash-navcard-label { font-family:'Barlow Condensed',sans-serif; font-size:15px; letter-spacing:2px;
    text-transform:uppercase; color:#f0ede4; font-weight:700; line-height:1; }
  #dashboardAtleta .dash-navcard-metric { font-family:'Barlow Condensed',sans-serif; font-size:11px; letter-spacing:1px;
    text-transform:uppercase; color:#9a948a; margin-top:auto; line-height:1.2; }
  #dashboardAtleta .dash-navcard-metric b { color:#00e5f0; font-weight:700; }
  #dashboardAtleta .dash-navcard:nth-child(1){ animation-delay:.02s; }
  #dashboardAtleta .dash-navcard:nth-child(2){ animation-delay:.06s; }
  #dashboardAtleta .dash-navcard:nth-child(3){ animation-delay:.10s; }
  #dashboardAtleta .dash-navcard:nth-child(4){ animation-delay:.14s; }
  #dashboardAtleta .dash-navcard:nth-child(5){ animation-delay:.18s; }
  #dashboardAtleta .dash-navcard:nth-child(6){ animation-delay:.22s; }

  /* Modo tarjetas: ocultar headers de acordeón y colapsar secciones */
  #dashboardAtleta.nav-cards .me-accord-btn { display:none !important; }
  #dashboardAtleta.nav-cards .me-accord { display:none; }
  #dashboardAtleta.nav-cards .me-accord.is-active { display:block; animation: me-cardIn .4s cubic-bezier(.22,1,.36,1) both; }
  #dashboardAtleta.nav-cards .me-accord.is-active .me-accord-body { max-height:none !important; overflow:visible; }

  /* Back bar */
  #dashboardAtleta .dash-backbar { display:none; align-items:center; gap:13px; padding:13px 16px;
    position:sticky; top:0; z-index:30; background:rgba(5,5,5,0.96); backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(212,168,67,0.22); }
  #dashboardAtleta.sec-open .dash-backbar { display:flex; }
  #dashboardAtleta .dash-backbtn { width:34px; height:34px; flex-shrink:0; border-radius:9px; cursor:pointer;
    background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); color:#f0ede4;
    display:flex; align-items:center; justify-content:center; transition:all .18s; }
  #dashboardAtleta .dash-backbtn:hover { background:rgba(0,229,240,0.1); border-color:rgba(0,229,240,0.4); color:#00e5f0; }
  #dashboardAtleta .dash-backtitle { font-family:'Bebas Neue',sans-serif; font-size:1.5rem; letter-spacing:2px; color:#f0ede4; line-height:1; }
  /* La placa motivacional vive SOLO en el overlay de bienvenida al iniciar
     sesión (mostrarFraseCinema), no en el muro del atleta.
     Se iguala la especificidad de #dashboardAtleta.open .dash-frase-wrap. */
  #dashboardAtleta.open .dash-frase-wrap { display:none !important; }

  /* En vista de sección: ocultar grid, banner y chrome del home (foco en la sección) */
  #dashboardAtleta.sec-open .dash-cardnav { display:none; }
  #dashboardAtleta.sec-open #dashSinPlanBanner { display:none !important; }
  #dashboardAtleta.sec-open .dash-profile { display:none !important; }
  #dashboardAtleta.sec-open .dash-connect-card { display:none !important; }

  /* ══════════════════════════════════════════════════════════
     FONDO EN LOOP + TARJETAS CRISTALIZADAS (dashboard)
  ══════════════════════════════════════════════════════════ */
  #dashboardAtleta .dash-bg { position:fixed; inset:0; z-index:0; overflow:hidden; background:#050608; pointer-events:none; }
  #dashboardAtleta .dash-bg-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .6s ease; }
  #dashboardAtleta .dash-bg-video.has-src { opacity:1; }
  /* Fallback animado mientras no haya video: malla de gradientes de marca en deriva lenta */
  #dashboardAtleta .dash-bg::before {
    content:''; position:absolute; inset:-25%;
    background:
      radial-gradient(40% 50% at 25% 30%, rgba(0,229,240,0.12), transparent 60%),
      radial-gradient(45% 55% at 80% 22%, rgba(192,57,43,0.11), transparent 60%),
      radial-gradient(50% 50% at 62% 85%, rgba(212,168,67,0.09), transparent 60%),
      radial-gradient(60% 60% at 12% 82%, rgba(0,122,133,0.11), transparent 60%);
    filter: blur(22px);
    animation: dashBgDrift 26s ease-in-out infinite alternate;
  }
  @keyframes dashBgDrift {
    0%   { transform: translate3d(0,0,0) scale(1.05); }
    50%  { transform: translate3d(-3%,2%,0) scale(1.12); }
    100% { transform: translate3d(3%,-2%,0) scale(1.06); }
  }
  /* Scrim de legibilidad sobre el fondo */
  #dashboardAtleta .dash-bg::after {
    content:''; position:absolute; inset:0;
    background: linear-gradient(180deg, rgba(5,6,8,0.15) 0%, rgba(5,6,8,0.40) 55%, rgba(5,6,8,0.60) 100%);
  }

  /* Panel transparente para que el video se vea a través del cristal */
  #dashboardAtleta .dashboard-box { background: transparent !important; position:relative; z-index:1; }
  /* En sección: caja y acordeón transparentes — el video se ve de fondo */
  #dashboardAtleta.sec-open .dashboard-box  { background: transparent !important; }
  #dashboardAtleta.sec-open .me-accord-body { background: transparent !important; }
  /* Vidrio suave sobre el contenido activo para legibilidad sin bloquear el video */
  #dashboardAtleta.nav-cards .me-accord.is-active {
    background: rgba(0,0,0,0.38);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-top: 1px solid rgba(255,255,255,0.07);
    min-height: 100vh;
  }

  /* Tarjetas cristalizadas (glassmorphism) */
  #dashboardAtleta .dash-navcard {
    background: rgba(18,20,24,0.40) !important;
    -webkit-backdrop-filter: blur(16px) saturate(1.3);
    backdrop-filter: blur(16px) saturate(1.3);
    border: 1px solid rgba(255,255,255,0.14) !important;
    box-shadow: 0 8px 30px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.08);
  }
  #dashboardAtleta .dash-navcard:hover {
    background: rgba(0,229,240,0.10) !important;
    border-color: rgba(0,229,240,0.5) !important;
  }
  @media (prefers-reduced-motion: reduce) {
    #dashboardAtleta .dash-bg::before { animation: none !important; }
  }

  /* ══════════════════════════════════════════════════════════
     SECCIONES PLANAS · contenido sin tarjetas, separado por subtítulos
     (clase .sec-flat en el .me-accord-body de la sección)
  ══════════════════════════════════════════════════════════ */
  /* Nota: .dash-chart-card (hero "Frecuencia Cardíaca" con stats superpuestas)
     NO se aplana: su layout interno usa posición/padding propios. */
  #dashboardAtleta .sec-flat .th-chart-container,
  #dashboardAtleta .sec-flat .dash-zones-card,
  #dashboardAtleta .sec-flat .flat-box {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    animation: none !important;
    border-radius: 0 !important;
    padding: 0 8px !important;
    margin: 4px 8px 20px !important;
  }
  #dashboardAtleta .sec-flat .th-chart-container::before,
  #dashboardAtleta .sec-flat .dash-zones-card::before { display: none !important; }

  /* Catch-all: cualquier DIV-contenedor con esquinas redondeadas inline pierde
     su "cartón" (fondo/borde/sombra/halo). Solo div → inputs, selects y botones
     conservan su caja. El sello de resultado (.rkr) no usa border-radius inline. */
  #dashboardAtleta .sec-flat div[style*="border-radius:8px"],
  #dashboardAtleta .sec-flat div[style*="border-radius:10px"],
  #dashboardAtleta .sec-flat div[style*="border-radius:12px"],
  #dashboardAtleta .sec-flat div[style*="border-radius:14px"],
  #dashboardAtleta .sec-flat div[style*="border-radius: 8px"],
  #dashboardAtleta .sec-flat div[style*="border-radius: 10px"],
  #dashboardAtleta .sec-flat div[style*="border-radius: 12px"] {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    animation: none !important;
  }
  /* El título interno de cada bloque actúa como subtítulo (igual look que dash-section-title) */
  #dashboardAtleta .sec-flat .th-chart-title {
    font-family:'Barlow Condensed',sans-serif !important; font-size:12px !important;
    font-weight:700 !important; letter-spacing:3px !important; text-transform:uppercase !important;
    color:#e74c3c !important; display:flex; align-items:center; gap:8px;
  }
  #dashboardAtleta .sec-flat .th-chart-title::before {
    content:''; width:14px; height:1px; background:#00e5f0; flex-shrink:0;
  }
  /* Separador sutil entre subsecciones */
  #dashboardAtleta .sec-flat .dash-section-title { margin-top:10px; }
  /* Zonas FC: título blanco (excepción a la regla sec-flat rojo) */
  #dashboardAtleta #zonasFcCard .th-chart-title { color:rgba(255,255,255,0.88) !important; letter-spacing:0.5px !important; }
  #dashboardAtleta #zonasFcCard .th-chart-title::before { display:none !important; }

  /* ══════════════════════════════════════════════════════════
     TARJETA DE RESULTADO rkFTP · Reveal dramático
     (el momento "salta en pantalla" — sello + línea de niveles
      + conteo de watts + métricas + mensaje)
  ══════════════════════════════════════════════════════════ */
  #dashboardAtleta .rkr {
    position: relative; border-radius: 16px; padding: 24px 20px 22px;
    overflow: hidden; margin-top: 12px;
    background: radial-gradient(120% 140% at 50% 0%, var(--rkr-glow) 0%, #0b0e11 55%) !important;
    border: 1px solid var(--rkr-soft) !important;
    animation: none !important; /* anula el halo dorado genérico */
  }
  #dashboardAtleta .rkr.show { animation: rkrIn .55s cubic-bezier(0.16,1,0.3,1) both !important; }
  @keyframes rkrIn { from { opacity:0; transform: translateY(24px) scale(0.96);} to { opacity:1; transform:none; } }

  /* Brillo barrido — solo Élite */
  #dashboardAtleta .rkr-shine { position:absolute; top:0; left:-60%; width:50%; height:100%; pointer-events:none;
    background: linear-gradient(105deg, transparent, rgba(255,255,255,0.16), transparent); }
  #dashboardAtleta .rkr.elite .rkr-shine { animation: rkrSweep 2.4s ease 0.6s infinite; }
  @keyframes rkrSweep { 0%{ left:-60%; } 55%,100%{ left:130%; } }

  #dashboardAtleta .rkr-top { font-family:'Barlow Condensed',sans-serif; font-size:10px; letter-spacing:3px;
    color:#8a857c !important; text-transform:uppercase; text-align:center; opacity:0; animation: rkrFade .5s ease .15s both; }

  /* Sello del nivel — el protagonista */
  #dashboardAtleta .rkr-badge { text-align:center; margin:12px 0 4px; }
  #dashboardAtleta .rkr-ico { font-size:1.5rem; line-height:1; opacity:0; color: var(--rkr-accent); }
  #dashboardAtleta .rkr.show .rkr-ico { animation: rkrFade .4s ease .2s both; }
  #dashboardAtleta .rkr-stamp { display:inline-block; font-family:'Bebas Neue',sans-serif; font-size:3rem; line-height:1;
    letter-spacing:2px; color:var(--rkr-accent) !important; padding:4px 22px; border:3px solid var(--rkr-accent);
    border-radius:10px; text-shadow:0 2px 18px var(--rkr-glow); margin-top:4px; }
  #dashboardAtleta .rkr.show .rkr-stamp { animation: rkrStamp .5s cubic-bezier(0.34,1.56,0.64,1) .3s both; }
  @keyframes rkrStamp { 0%{ opacity:0; transform:scale(1.8) rotate(-8deg);} 60%{ opacity:1; transform:scale(0.94) rotate(-3deg);} 100%{ opacity:1; transform:scale(1) rotate(-3deg);} }

  #dashboardAtleta .rkr-time { text-align:center; font-family:'Bebas Neue',sans-serif; font-size:1.5rem; color:#fff !important;
    letter-spacing:1px; margin-top:12px; opacity:0; }
  #dashboardAtleta .rkr.show .rkr-time { animation: rkrFade .5s ease .55s both; }
  #dashboardAtleta .rkr-time small { font-family:'Barlow Condensed',sans-serif; font-size:0.62em; color:#8a857c !important; letter-spacing:1px; }

  /* Línea de niveles con marcador deslizante */
  #dashboardAtleta .rkr-tl { margin:20px 4px 6px; opacity:0; }
  #dashboardAtleta .rkr.show .rkr-tl { animation: rkrFade .5s ease .7s both; }
  #dashboardAtleta .rkr-tlbar { position:relative; height:8px; border-radius:5px; display:flex; overflow:hidden; }
  #dashboardAtleta .rkr-tlseg { height:100%; }
  #dashboardAtleta .rkr-mk { position:absolute; top:-7px; width:0; height:0;
    border-left:6px solid transparent; border-right:6px solid transparent; border-top:9px solid #fff;
    transform:translateX(-50%); transition:left 1s cubic-bezier(0.16,1,0.3,1); filter:drop-shadow(0 1px 3px rgba(0,0,0,0.6)); }
  #dashboardAtleta .rkr-tllabels { display:flex; justify-content:space-between; margin-top:7px;
    font-family:'Barlow Condensed',sans-serif; font-size:9px; letter-spacing:1px; color:#5f5b54 !important; text-transform:uppercase; }

  /* Métricas (watts + ritmo) */
  #dashboardAtleta .rkr-metrics { display:flex; gap:10px; margin-top:18px; opacity:0; }
  #dashboardAtleta .rkr.show .rkr-metrics { animation: rkrFade .5s ease .85s both; }
  #dashboardAtleta .rkr-metric { flex:1; background:rgba(255,255,255,0.03) !important; border:1px solid rgba(255,255,255,0.06) !important;
    border-radius:10px; padding:12px 8px; text-align:center; animation:none !important; }
  #dashboardAtleta .rkr-mv { font-family:'Bebas Neue',sans-serif; font-size:2rem; color:var(--rkr-accent) !important; line-height:1; }
  #dashboardAtleta .rkr-mv small { font-family:'Barlow Condensed',sans-serif; font-size:0.5em; color:#8a857c !important; letter-spacing:1px; }
  #dashboardAtleta .rkr-mk-label { font-family:'Barlow Condensed',sans-serif; font-size:9px; letter-spacing:2px;
    color:#8a857c !important; text-transform:uppercase; margin-top:5px; }

  #dashboardAtleta .rkr-msg { font-size:12.5px; line-height:1.55; color:#c9c3b9 !important; text-align:center; margin-top:16px; opacity:0; }
  #dashboardAtleta .rkr.show .rkr-msg { animation: rkrFade .5s ease 1s both; }
  #dashboardAtleta .rkr-msg strong { color:var(--rkr-accent) !important; }

  @keyframes rkrFade { from { opacity:0; transform:translateY(14px);} to { opacity:1; transform:none; } }

  @media (prefers-reduced-motion: reduce) {
    #dashboardAtleta .rkr,
    #dashboardAtleta .rkr * { animation: none !important; }
    #dashboardAtleta .rkr-top, #dashboardAtleta .rkr-time, #dashboardAtleta .rkr-tl,
    #dashboardAtleta .rkr-metrics, #dashboardAtleta .rkr-msg, #dashboardAtleta .rkr-ico { opacity:1 !important; }
  }

  /* ── RUEDA SELECTORA (picker estilo iOS) — lastre / distancia ── */
  #dashboardAtleta .me-wheel { position:relative; height:114px; border-radius:8px;
    background:rgba(212,168,67,0.06) !important; border:1px solid rgba(212,168,67,0.2); overflow:hidden; }
  #dashboardAtleta .me-wheel-scroll { height:100%; overflow-y:scroll; scroll-snap-type:y mandatory;
    overscroll-behavior:contain; -webkit-overflow-scrolling:touch; scrollbar-width:none; text-align:center; }
  #dashboardAtleta .me-wheel-scroll::-webkit-scrollbar { display:none; width:0; height:0; }
  #dashboardAtleta .me-wheel-item { height:38px; line-height:38px; scroll-snap-align:center;
    font-family:'Barlow Condensed',sans-serif; font-size:16px; letter-spacing:1px; color:#7d745f !important;
    transition:color .15s, font-size .15s, font-weight .15s; cursor:pointer; }
  #dashboardAtleta .me-wheel-item.active { color:#d4a843 !important; font-size:21px; font-weight:700; }
  #dashboardAtleta .me-wheel-center { position:absolute; left:6px; right:6px; top:38px; height:38px;
    border-top:1px solid rgba(212,168,67,0.32); border-bottom:1px solid rgba(212,168,67,0.32); pointer-events:none; }
  #dashboardAtleta .me-wheel-unit { position:absolute; right:14px; top:46px; font-family:'Barlow Condensed',sans-serif;
    font-size:11px; letter-spacing:1px; color:#9a948a !important; text-transform:uppercase; pointer-events:none; }
  #dashboardAtleta .me-wheel--locked { opacity:0.45; }
  #dashboardAtleta .me-wheel--locked .me-wheel-scroll { pointer-events:none; overflow:hidden; }

  /* ── TARJETA TOLERANCIA A LA CARGA ── */
  #dashboardAtleta .me-tol-reco { border-radius:10px; padding:13px 15px; border:1px solid; transition:background .25s, border-color .25s; }
  #dashboardAtleta .me-tol-head { display:flex; align-items:center; gap:8px; font-family:'Barlow Condensed',sans-serif;
    font-size:14px; font-weight:700; letter-spacing:1px; text-transform:uppercase; }
  #dashboardAtleta .me-tol-body { font-size:12.5px; line-height:1.55; margin-top:7px; }
  #dashboardAtleta .me-tol-bar { height:7px; border-radius:6px; background:rgba(0,0,0,0.08); margin-top:11px; overflow:hidden; }
  #dashboardAtleta .me-tol-fill { height:100%; border-radius:6px; transition:width .3s, background .3s; }
  #dashboardAtleta .me-tol-meta { display:flex; justify-content:space-between; align-items:flex-end; font-family:'Barlow Condensed',sans-serif;
    font-size:11px; letter-spacing:1px; color:#cfc9c1 !important; text-transform:uppercase; margin-top:8px; font-weight:600; }
  #dashboardAtleta .me-tol-metalbl { font-size:9px; letter-spacing:0.5px; color:#7a756c !important; font-weight:400; margin-top:1px; }
  #dashboardAtleta .me-tol-gate { font-size:12px; line-height:1.5; color:#999 !important; text-align:center; padding:6px 4px; }

  /* ── TARJETA CAPACIDAD DE RENDIMIENTO (anillos motor/chasis + bullets) ── */
  #dashboardAtleta .me-ring-row { display:flex; gap:10px; }
  #dashboardAtleta .me-ring-card { flex:1; background:rgba(255,255,255,0.03) !important;
    border:1px solid rgba(255,255,255,0.07) !important; border-radius:10px; padding:12px 6px; text-align:center; }
  #dashboardAtleta .me-ring-lbl { font-family:'Barlow Condensed',sans-serif; font-size:10px; letter-spacing:2px;
    color:#9a948a !important; text-transform:uppercase; margin-bottom:6px; }
  #dashboardAtleta .me-ring-svg { width:96px; height:96px; }
  #dashboardAtleta #ringMotorFill, #dashboardAtleta #ringChasisFill { transition:stroke-dashoffset 1s cubic-bezier(.16,1,.3,1), stroke .3s; }
  #dashboardAtleta .me-ring-sub { font-family:'Barlow Condensed',sans-serif; font-size:9px; letter-spacing:1px;
    color:#6e6a63 !important; text-transform:uppercase; margin-top:5px; }
  #dashboardAtleta .me-perf-verdict { border-radius:10px; padding:12px 14px; border:1px solid; margin-top:12px;
    transition:background .25s, border-color .25s; }
  #dashboardAtleta .me-perf-vhead { font-family:'Barlow Condensed',sans-serif; font-size:13px; font-weight:700;
    letter-spacing:1px; text-transform:uppercase; }
  #dashboardAtleta .me-perf-vbody { font-size:12.5px; line-height:1.5; margin-top:6px; }
  #dashboardAtleta .me-blt { margin-bottom:11px; }
  #dashboardAtleta .me-blt-top { display:flex; justify-content:space-between; font-family:'Barlow Condensed',sans-serif;
    font-size:10px; letter-spacing:1px; color:#9a948a !important; text-transform:uppercase; margin-bottom:3px; }
  #dashboardAtleta .me-blt-val { font-weight:700; }
  #dashboardAtleta .me-blt-bar { position:relative; height:12px; background:rgba(255,255,255,0.05); border-radius:3px; }
  #dashboardAtleta .me-blt-fill { position:absolute; left:0; top:0; height:100%; border-radius:3px; transition:width .8s cubic-bezier(.16,1,.3,1); }
  #dashboardAtleta .me-blt-target { position:absolute; top:-2px; width:2px; height:16px; background:#f1ece4; opacity:0.85; }

  /* ══════════════════════════════════════════════════════════
     ESCALA DE TEXTO · panel del atleta (solo escritorio)
     zoom:1.1 base REMOVIDO — escalaba el footprint del box un 10%
     más ancho que el viewport en móvil, recortando contenido a la derecha.
     En escritorio: zoom:1.3 con max-width adaptativo que garantiza que
     el box zoomeado nunca supere el 88% del viewport (sin overflow).
  ══════════════════════════════════════════════════════════ */
  @media (min-width: 1024px) {
    #dashboardAtleta .dashboard-box {
      zoom: 1.3;
      /* 88vw / 1.3 = ancho máximo pre-zoom para que el resultado ≤ 88vw */
      max-width: min(680px, calc(88vw / 1.3));
      margin-left: auto; margin-right: auto;
    }
  }

  /* ══════════════════════════════════════════════════════════
     RANKING RUCKING · overlay leaderboard (Test 4.8 km · potencia W)
     OJO: #rankOverlay vive FUERA de #dashboardAtleta → scope propio
  ══════════════════════════════════════════════════════════ */
  #rankOverlay .rank-row {
    display:flex; align-items:center; gap:11px; padding:10px 12px;
    background:rgba(10,10,10,0.88); border:1px solid rgba(255,255,255,0.08);
    border-radius:10px; margin-bottom:8px;
  }
  #rankOverlay .rank-row.is-me {
    background:rgba(201,168,76,0.13); border-color:rgba(201,168,76,0.65);
  }
  #rankOverlay .rank-posbox {
    flex-shrink:0; width:34px; display:flex; align-items:center; justify-content:center;
    position:relative;
  }
  #rankOverlay .rank-posbox svg { display:block; position:relative; z-index:1; filter:drop-shadow(0 1px 2px rgba(0,0,0,0.5)); }
  /* Halo pulsante del color de la medalla (oro/plata/bronce vía --halo) */
  #rankOverlay .rank-posbox.has-halo::before {
    content:''; position:absolute; left:50%; top:50%; width:50px; height:50px;
    transform:translate(-50%,-50%); border-radius:50%; z-index:0; pointer-events:none;
    background:radial-gradient(closest-side, var(--halo) 0%, transparent 70%);
    animation: rankHalo 2.1s ease-in-out infinite;
  }
  @keyframes rankHalo {
    0%,100% { transform:translate(-50%,-50%) scale(.72); opacity:.25; }
    50%     { transform:translate(-50%,-50%) scale(1.2);  opacity:.6;  }
  }
  @media (prefers-reduced-motion: reduce) {
    #rankOverlay .rank-posbox.has-halo::before { animation:none; opacity:.42; transform:translate(-50%,-50%) scale(1); }
  }
  #rankOverlay .rank-pos {
    display:inline-block; width:34px; text-align:center;
    font-family:'Bebas Neue',sans-serif; font-size:1.35rem; color:#6e6a62; line-height:1;
  }
  #rankOverlay .rank-row.is-me .rank-pos { color:#C9A84C; }
  #rankOverlay .rank-av {
    flex-shrink:0; border-radius:50%; background-size:cover; background-position:center;
    background-color:#1a1a1a; box-shadow:0 0 0 1.5px rgba(255,255,255,0.12);
  }
  #rankOverlay .rank-row.is-me .rank-av { box-shadow:0 0 0 2px #C9A84C; }
  #rankOverlay .rank-av-ini {
    display:flex; align-items:center; justify-content:center;
    font-family:'Bebas Neue',sans-serif; color:#fff; letter-spacing:.5px;
  }
  #rankOverlay .rank-name-wrap { flex:1; min-width:0; }
  #rankOverlay .rank-name {
    font-family:'Bebas Neue',sans-serif; font-size:1.2rem; color:#e8e3da;
    letter-spacing:.5px; line-height:1.05; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  #rankOverlay .rank-row.is-me .rank-name { color:#00e5f0; }
  #rankOverlay .rank-sub {
    font-family:'Barlow Condensed',sans-serif; font-size:11px; letter-spacing:1px;
    color:#8a857c; text-transform:uppercase; margin-top:2px;
  }
  #rankOverlay .rank-val {
    flex-shrink:0; text-align:right; font-family:'Bebas Neue',sans-serif;
    font-size:1.55rem; color:#fff; line-height:1;
  }
  #rankOverlay .rank-val small {
    display:block; font-family:'Barlow Condensed',sans-serif; font-size:8.5px;
    letter-spacing:1.5px; color:#777; text-transform:uppercase; margin-top:2px;
  }
  #rankOverlay .rank-row.is-me .rank-val { color:#C9A84C; }


/* Botón i — historial capacidad aeróbica y test umbral rucking */
@keyframes endInfoPulse {
  0%   { transform: scale(1);    box-shadow: 0 0 0 0 rgba(255,255,255,0.6); }
  50%  { transform: scale(1.2);  box-shadow: 0 0 0 8px rgba(255,255,255,0); }
  100% { transform: scale(1);    box-shadow: 0 0 0 0 rgba(255,255,255,0); }
}
@keyframes ruckInfoPulse {
  0%   { transform: scale(1);    box-shadow: 0 0 0 1.5px #8B1A1A, 0 0 0 2px rgba(139,26,26,0.5); }
  50%  { transform: scale(1.2);  box-shadow: 0 0 0 1.5px #8B1A1A, 0 0 0 9px rgba(139,26,26,0); }
  100% { transform: scale(1);    box-shadow: 0 0 0 1.5px #8B1A1A, 0 0 0 2px rgba(139,26,26,0); }
}
#endHistInfoBtn {
  animation: endInfoPulse 0.85s ease-in-out 3;
  animation-delay: 0.5s;
  animation-fill-mode: both;
}
#ruckTestInfoBtn,
#testCampoInfoBtn {
  animation: ruckInfoPulse 0.85s ease-in-out 3;
  animation-delay: 0.5s;
  animation-fill-mode: both;
}

/* ══════════════════════════════════════════════════════════
   LEGIBILIDAD MÓVIL · panel del atleta
   Los tamaños de letra inline más pequeños se suben en bloque
   (selector por atributo + !important) para pantallas chicas,
   sin editar cada markup. Cubre también #histOverlay y los
   modales (viven dentro de #dashboardAtleta).
══════════════════════════════════════════════════════════ */
#dashboardAtleta [style*="font-size:8px"]   { font-size:10px !important; }
#dashboardAtleta [style*="font-size:8.5px"] { font-size:10px !important; }
#dashboardAtleta [style*="font-size:9px"]   { font-size:10.5px !important; }
#dashboardAtleta [style*="font-size:9.5px"] { font-size:10.5px !important; }
#dashboardAtleta [style*="font-size:10px"]  { font-size:11px !important; }
#dashboardAtleta [style*="font-size:11px"]  { font-size:12px !important; }
#dashboardAtleta [style*="font-size:12px"]  { font-size:13px !important; }

/* Clases con letra chica (Tolerancia a la Carga y afines) */
#dashboardAtleta .me-tol-metalbl { font-size:10.5px !important; }
#dashboardAtleta .me-tol-body    { font-size:13.5px !important; }
#dashboardAtleta .me-tol-gate    { font-size:13px !important; }

/* Márgenes laterales más angostos → más ancho útil para el texto */
#dashboardAtleta [style*="margin:0 16px"] { margin-left:10px !important; margin-right:10px !important; }
