
  
  @font-face {
    font-family: "PAI Rajdhani Filtros";
    src: url("https://fonts.gstatic.com/s/rajdhani/v17/LDI2apCSOBg7S-QT7pb0EMOs.ttf") format("truetype");
    font-style: normal; font-weight: 500; font-display: swap;
  }
  @font-face {
    font-family: "PAI Rajdhani Filtros";
    src: url("https://fonts.gstatic.com/s/rajdhani/v17/LDI2apCSOBg7S-QT7pbYF8Os.ttf") format("truetype");
    font-style: normal; font-weight: 600; font-display: swap;
  }
  /* CSS_VERSION_2026_05_14_HERO70 — Lead "Analiza…" proporcional al h2 (sin vw). */
  html body:not(.et-fb) {
    /* V240: tipografía compartida de controles principales, etiquetas y menús. */
    --pai-main-control-font-family: Rajdhani, "PAI Rajdhani Console", radhani, sans-serif;
    --pai-main-control-font-size: 16px;
    --pai-control-border-blue: rgba(105, 205, 255, .88);
    --pai-control-border-blue-hover: rgba(150, 230, 255, 1);
    --pai-control-text-blue: #6fd0ff;
    --pai-control-bg-dark: #0b1322;
    --pai-control-glow-blue:
      0 1px 0 rgba(255,255,255,.20) inset,
      0 -1px 0 rgba(30,120,255,.24) inset,
      0 0 0 1px rgba(105,205,255,.13) inset,
      0 0 22px rgba(65,180,255,.54),
      0 0 48px rgba(45,125,255,.22),
      0 13px 32px rgba(0,0,0,.54);
  }
  #ranking-debug-banner #ranking-debug-css-tag::before { content: "FONT-YEAR-ARIAL-REAL-2026-05-20"; }/* ============================================================
     HERO DEL RANKING (título + subtítulos + fondo chart).
     Movido aquí desde dos Rows de Divi (Text + Code) para que el
     título quede fijo cuando se scrollea horizontalmente la tabla.
     Una vez confirmes que funciona,
  ELIMINA esos dos Rows en Divi.
     ============================================================ */
  .patrimonio-hero-bg {
    --bars-opacity: 0.38;
    --curve-opacity: 0.62;
    --glow-opacity: 0.45;
    /* Curva+barras más abajo (solo CSS). Sube/baja este valor si no coincide con la raya azul de cabecera. */
    --patrimonio-chart-dy: 240px;
  
    /* STICKY HORIZONTAL: el hero se queda pegado a la izquierda del
       viewport durante el scroll horizontal del documento (igual que
       cols 1 y 2 sticky de la tabla). Sin top -> vertical scrollea
       naturalmente con la pagina. */
    position: -webkit-sticky !important;
    position: sticky !important;
    left: 0 !important;
    top: auto !important;
  
    width: 100vw !important;
    max-width: 100vw !important;
    /* El hero se dimensiona únicamente por su contenido real. */
    --patrimonio-hero-h: auto;
    min-height: 0 !important;
    height: auto !important;
  
    overflow: visible !important;
    background: transparent !important;
    border-radius: 0 !important;
    isolation: isolate !important;
    box-sizing: border-box !important;
    transform: none !important;
    contain: none !important;
  }.patrimonio-hero-bg .patrimonio-bg-layer {
    position: absolute !important;
    inset: 0 !important;
    pointer-events: none !important;
  }.patrimonio-hero-bg .patrimonio-content {
    position: relative !important;
    z-index: 20 !important;
    max-width: 1400px !important;
    margin: 0 auto !important;
    min-height: 0 !important;
    /* Referencia exclusiva del lead; se conserva para no alterar la tercera línea. */
    --patrimonio-hero-h2-size: 25px;
    --patrimonio-hero-lead-size: calc((var(--patrimonio-hero-h2-size) * 0.72) + 1px);
    /* 50px bajo "Analiza…" hasta el borde inferior del hero (= separación con .filters-top si margin-top 0). */
    padding: 30px 48px 50px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
  }html body:not(.et-fb) #page-container .patrimonio-hero-bg .patrimonio-content h2,
  .patrimonio-hero-bg .patrimonio-content h2 {
    font-family: "Rajdhani", "radhani", sans-serif !important;
    font-size: 28.5px !important;
    font-weight: 600 !important;
    font-synthesis: none !important;
    line-height: 1.2 !important;
    letter-spacing: 0.5px !important;
    color: #ffffff !important;
    margin: 0 0 15px 0 !important;
  }

  /*
   * SSOT responsive del subtítulo: consume directamente el perfil ya escrito
   * por PatrimonAIExactHeroTitle en el ancla de perfil inmediatamente anterior.
   */
  html body:not(.et-fb) #page-container .patrimonio-hero-bg .patrimonio-content .pai-hero-profile-anchor[data-pai-hero-title-profile="desktop"] + h2,
  .patrimonio-hero-bg .patrimonio-content .pai-hero-profile-anchor[data-pai-hero-title-profile="desktop"] + h2 {
    font-size: 28.5px !important;
    letter-spacing: 0.5px !important;
  }

  html body:not(.et-fb) #page-container .patrimonio-hero-bg .patrimonio-content .pai-hero-profile-anchor[data-pai-hero-title-profile="phonePortrait"] + h2,
  .patrimonio-hero-bg .patrimonio-content .pai-hero-profile-anchor[data-pai-hero-title-profile="phonePortrait"] + h2 {
    font-size: 26.5px !important;
    letter-spacing: 0.5px !important;
  }

  html body:not(.et-fb) #page-container .patrimonio-hero-bg .patrimonio-content .pai-hero-profile-anchor[data-pai-hero-title-profile="phoneLandscape"] + h2,
  .patrimonio-hero-bg .patrimonio-content .pai-hero-profile-anchor[data-pai-hero-title-profile="phoneLandscape"] + h2 {
    font-size: 26px !important;
    letter-spacing: 0.5px !important;
  }

  html body:not(.et-fb) #page-container .patrimonio-hero-bg .patrimonio-content .pai-hero-profile-anchor[data-pai-hero-title-profile="tabletPortrait"] + h2,
  .patrimonio-hero-bg .patrimonio-content .pai-hero-profile-anchor[data-pai-hero-title-profile="tabletPortrait"] + h2 {
    font-size: 43.5px !important;
    letter-spacing: 0.5px !important;
  }

  html body:not(.et-fb) #page-container .patrimonio-hero-bg .patrimonio-content .pai-hero-profile-anchor[data-pai-hero-title-profile="tabletLandscape"] + h2,
  .patrimonio-hero-bg .patrimonio-content .pai-hero-profile-anchor[data-pai-hero-title-profile="tabletLandscape"] + h2 {
    font-size: 30px !important;
    letter-spacing: 0.5px !important;
  }

  html body:not(.et-fb) #page-container .patrimonio-hero-bg .patrimonio-content h2 .patrimonio-ia,
  .patrimonio-hero-bg .patrimonio-content h2 .patrimonio-ia {
    color: #3b82f6 !important;
    font-weight: 600 !important;
  }.patrimonio-hero-bg .patrimonio-content p.patrimonio-lead {
    font-family: "Rajdhani", "PAI Rajdhani Console", sans-serif !important;
    font-size: var(--patrimonio-hero-lead-size) !important;
    font-weight: 700 !important;
    letter-spacing: 0.5px !important;
    line-height: 1.45 !important;
    color: #ffffff !important;
    margin: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }.patrimonio-hero-bg .patrimonio-bars { opacity: var(--bars-opacity) !important; }.patrimonio-hero-bg .patrimonio-bars::before {
    content: "" !important;
    position: absolute !important;
    right: 10% !important;
    bottom: 70px !important;
    width: 520px !important;
    height: 400px !important;
    background:
      linear-gradient(to top, rgba(92,170,255,0.10), rgba(92,170,255,0.24)),
      linear-gradient(to top, rgba(92,170,255,0.10), rgba(92,170,255,0.28)),
      linear-gradient(to top, rgba(92,170,255,0.10), rgba(92,170,255,0.33)),
      linear-gradient(to top, rgba(92,170,255,0.10), rgba(92,170,255,0.40)),
      linear-gradient(to top, rgba(92,170,255,0.10), rgba(92,170,255,0.48)),
      linear-gradient(to top, rgba(92,170,255,0.10), rgba(92,170,255,0.58)),
      linear-gradient(to top, rgba(92,170,255,0.10), rgba(92,170,255,0.72)),
      linear-gradient(to top, rgba(92,170,255,0.10), rgba(92,170,255,0.92)) !important;
    background-size:
      28px 58px, 30px 74px, 32px 98px, 34px 136px,
      36px 188px, 38px 256px, 40px 334px, 42px 392px !important;
    background-repeat: no-repeat !important;
    background-position:
      0 100%, 58px 100%, 122px 100%, 194px 100%,
      276px 100%, 368px 100%, 470px 100%, 582px 100% !important;
    filter: blur(.2px) drop-shadow(0 0 10px rgba(80,160,255,.22)) !important;
  }.patrimonio-hero-bg .patrimonio-curve-wrap { opacity: var(--curve-opacity) !important; }.patrimonio-hero-bg .patrimonio-curve {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
  }/* Curva + barras: desplazamiento fijo hacia abajo (--patrimonio-chart-dy en .patrimonio-hero-bg). */
  .patrimonio-hero-bg .patrimonio-bars,
  .patrimonio-hero-bg .patrimonio-curve-wrap {
    transform: translateY(var(--patrimonio-chart-dy)) !important;
  }section.patrimonio-hero-bg > .patrimonio-hero-fixed-inner {
    overflow: visible !important;
  }.patrimonio-hero-bg .patrimonio-dot-core,
  .patrimonio-hero-bg .patrimonio-dot-mid,
  .patrimonio-hero-bg .patrimonio-dot-outer {
    opacity: var(--glow-opacity) !important;
  }
  @media (max-width: 980px) {.patrimonio-hero-bg {
      --patrimonio-chart-dy: 200px;
      min-height: 0 !important;
    }.patrimonio-hero-bg .patrimonio-content { min-height: 0 !important; padding: 30px 24px 50px !important; }.patrimonio-hero-bg .patrimonio-bars::before {
      right: 4% !important; bottom: 54px !important;
      transform: scale(.78) !important; transform-origin: bottom right !important;
    }
  }
  @media (max-width: 767px) {.patrimonio-hero-bg {
      --patrimonio-chart-dy: 160px;
      min-height: 0 !important;
    }.patrimonio-hero-bg .patrimonio-content { min-height: 0 !important; padding: 30px 18px 50px !important; }.patrimonio-hero-bg .patrimonio-bars::before {
      right: -18% !important; bottom: 40px !important;
      transform: scale(.56) !important; transform-origin: bottom right !important;
    }
  }/* Hero texto: fuerza padding-top frente a estilos del tema/Divi (#page-container). */
  html body:not(.et-fb) #page-container .et_pb_module.et_pb_code_1 .patrimonio-hero-bg .patrimonio-content {
    padding: 30px 48px 50px !important;
    justify-content: flex-start !important;
  }
  @media (max-width: 980px) {html body:not(.et-fb) #page-container .et_pb_module.et_pb_code_1 .patrimonio-hero-bg .patrimonio-content {
      padding: 30px 24px 50px !important;
    }
  }
  @media (max-width: 767px) {html body:not(.et-fb) #page-container .et_pb_module.et_pb_code_1 .patrimonio-hero-bg .patrimonio-content {
      padding: 30px 18px 50px !important;
    }
  }html body:not(.et-fb) #page-container .patrimonio-hero-bg .patrimonio-content {
    padding: 30px 48px 50px !important;
    justify-content: flex-start !important;
  }/* El subtítulo ya no tiene overrides globales 25/21px: su único propietario es el perfil canónico invisible del hero. */
  /* Lead "Analiza…": mismo ratio +1px, Rajdhani y tracking 0.5px; refuerzo frente al tema/Divi. */
  html body:not(.et-fb) #page-container .et_pb_module.et_pb_code_1 .patrimonio-hero-bg .patrimonio-content p.patrimonio-lead,
  html body:not(.et-fb) #page-container .patrimonio-hero-bg .patrimonio-content p.patrimonio-lead {
    font-family: "Rajdhani", "PAI Rajdhani Console", sans-serif !important;
    font-size: var(--patrimonio-hero-lead-size, calc((25px * 0.72) + 1px)) !important;
    letter-spacing: 0.5px !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
  @media (max-width: 980px) {html body:not(.et-fb) #page-container .patrimonio-hero-bg .patrimonio-content {
      padding: 30px 24px 50px !important;
    }
  }
  @media (max-width: 767px) {html body:not(.et-fb) #page-container .patrimonio-hero-bg .patrimonio-content {
      padding: 30px 18px 50px !important;
    }
    html body:not(.et-fb) #page-container .et_pb_module.et_pb_code_1 .patrimonio-hero-bg .patrimonio-content p.patrimonio-lead,
    html body:not(.et-fb) #page-container .patrimonio-hero-bg .patrimonio-content p.patrimonio-lead,
    .patrimonio-hero-bg .patrimonio-content p.patrimonio-lead {
      font-size: 18px !important;
      font-weight: 400 !important;
    }
  }/* `.et_pb_code_inner` del módulo del ranking:
     - overflow visible: evita que capas fixed (hero / barra) queden
       recortadas por un scroll container intermedio de Divi.
     - width: max-content: el layout-box crece con la tabla (ancho real)
       para que el scroll horizontal del documento tenga recorrido. */
  html body:not(.et-fb) .et_pb_module.et_pb_code_1 .et_pb_code_inner {
    overflow-x: visible !important;
    overflow-y: visible !important;
    width: max-content !important;
    min-width: 100% !important;
    max-width: none !important;
  }/* ============================================================
     STICKY PREMIUM SIMPLE (snippet soporte Divi adaptado al DOM real)
     Activado temporalmente para probar el comportamiento original.
     Bloque etiquetado para poder retirarlo o desactivarlo de un golpe.
     ============================================================ */
  html body:not(.et-fb) #page-container .et_pb_text_1,
  html body:not(.et-fb) #page-container .et_pb_text_1 .et_pb_text_inner,
  html body:not(.et-fb) #page-container #ranking-root {
    overflow: visible !important;
  }html body:not(.et-fb) #page-container #ranking-root {
    overflow-x: visible !important;
    overflow-y: visible !important;
    min-width: 100% !important;
    max-width: none !important;
  }html body:not(.et-fb) #page-container .et_pb_text_1 .et_pb_text_inner {
    width: 100% !important;
  }/* --- HEADER fijo de Divi: TRANSPARENTE en reposo,
  NEGRO al scroll.
     Divi añade `.et-fixed-header` automáticamente al hacer scroll → ahí
     pasamos a negro. z-index BAJO (1000) → debajo de cabeceras sticky. --- */
  html body:not(.et-fb) #main-header,
  html body:not(.et-fb) #main-header.et-fixed-header {
    z-index: 1000 !important;
  }html body:not(.et-fb) #main-header.et-fixed-header {
    background: rgb(var(--ranking-frozen-bg, 5, 8, 17)) !important;
    background-color: rgb(var(--ranking-frozen-bg, 5, 8, 17)) !important;
    background-image: none !important;
  }
  
  /* Portrait: #main-header anclado al viewport (no sigue scroll horizontal del doc). */
  @media (orientation: portrait) {
    html body:not(.et-fb) #main-header,
    html body:not(.et-fb) #main-header.et-fixed-header {
      position: fixed !important;
      left: 0 !important;
      right: auto !important;
      top: 0 !important;
      width: 100vw !important;
      min-width: 100vw !important;
      max-width: 100vw !important;
      transform: none !important;
      translate: none !important;
      margin-left: 0 !important;
      margin-right: 0 !important;
      z-index: 1000 !important;
    }
  
    html body:not(.et-fb).admin-bar #main-header,
    html body:not(.et-fb).admin-bar #main-header.et-fixed-header {
      top: 32px !important;
    }
  
    @media screen and (max-width: 782px) {
      html body:not(.et-fb).admin-bar #main-header,
      html body:not(.et-fb).admin-bar #main-header.et-fixed-header {
        top: 46px !important;
      }
    }
  }

  /* Mobile landscape: #main-header anclado al viewport igual que portrait.
     Evita que logo/menu/header se muevan horizontalmente con la tabla. */
  @media only screen and (max-width: 980px) and (orientation: landscape) {
    html body:not(.et-fb) #main-header,
    html body:not(.et-fb) #main-header.et-fixed-header {
      position: fixed !important;
      left: 0 !important;
      right: auto !important;
      top: 0 !important;
      width: 100vw !important;
      min-width: 100vw !important;
      max-width: 100vw !important;
      transform: none !important;
      translate: none !important;
      margin-left: 0 !important;
      margin-right: 0 !important;
      z-index: 1000 !important;
    }

    html body:not(.et-fb).admin-bar #main-header,
    html body:not(.et-fb).admin-bar #main-header.et-fixed-header {
      top: 32px !important;
    }

    html body:not(.et-fb) #main-header .container,
    html body:not(.et-fb) #main-header .et_menu_container {
      width: 100vw !important;
      max-width: 100vw !important;
      min-width: 100vw !important;
      margin-left: 0 !important;
      margin-right: 0 !important;
      padding-left: 34px !important;
      padding-right: 34px !important;
      left: 0 !important;
      right: auto !important;
      transform: none !important;
      translate: none !important;
      overflow: visible !important;
      box-sizing: border-box !important;
    }

    html body:not(.et-fb) #main-header .logo_container {
      left: 34px !important;
      top: 13px !important;
      transform: none !important;
      translate: none !important;
      overflow: visible !important;
    }
  }

  /* --- Neutralizar el stacking context que Divi crea en .et_pb_column
     (z-index:2 por defecto). --- */
  html body:not(.et-fb) #page-container .et_pb_column_1 {
    z-index: auto !important;
  }/* --- "Faldón" NEGRO bajo el header → SOLO visible cuando la fila de
     TÍTULOS toca arriba (v-scroll). Implementado como `box-shadow`
     outset NEGATIVO en Y sobre cada `th` de la fila TÍTULOS (regla
     `R103b` más abajo,
  junto a R103 que pinta el inset azul inferior).
  
     Por qué box-shadow y NO un ::before fijo:
     El `th` vive enterrado en #page-container (z:1) → #et-main-area
     (z:1) → .et_pb_code_1 (z:2) → .et_pb_code_inner (z:2). Cualquier
     ::before que coloquemos por encima de esa cadena (body,
  html,
  #page-container::before) está en un contexto de apilamiento ajeno
     y,
  o bien tapa los iconos ⓘ que sobresalen del `th`,
  o bien queda
     por debajo de las filas de datos. Un `box-shadow` outset SE PINTA
     DENTRO DEL PROPIO CONTEXTO DEL `th` (que es CAPA 3 z:7 000 000),
  por encima de las filas de datos pero por DEBAJO de los iconos
     ⓘ (z:5 dentro del mismo `th`). Resultado: tapa la franja sin
     ocultar los iconos. --- */
  
  /* Sin faldón ::before en #ranking-root: el faldón actual vive como
     box-shadow outset sobre el th de la fila TÍTULOS (R103b). */
  html body:not(.et-fb) #page-container #ranking-root::before {
    content: none !important;
  }/* ============================================================
     FIX REAL — BARRA CONTROLES FIJA EN X Y NORMAL EN Y
     Caja padre en flujo; contenido real fixed al viewport.
     ============================================================ */
  
  html body:not(.et-fb) #ranking-root .filters-top.filters-top-fixed-x,
  html body:not(.et-fb) #page-container #ranking-root .filters-top.filters-top-fixed-x {
    position: relative !important;
    left: auto !important;
    top: auto !important;
  
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 100vw !important;
  
    height: var(--ranking-filters-fixed-height, 40px) !important;
    min-height: var(--ranking-filters-fixed-height, 40px) !important;
  
    overflow: visible !important;
    transform: none !important;
    translate: none !important;
    will-change: auto !important;
    box-sizing: border-box !important;
    z-index: 1000000 !important;
  }/* El contenido real de la barra queda fijado al viewport.
     JS actualiza top para que verticalmente siga su sitio natural. */
  html body:not(.et-fb) #ranking-root .filters-top-fixed-inner,
  html body:not(.et-fb) #page-container #ranking-root .filters-top-fixed-inner {
    position: fixed !important;
    left: var(--ranking-filters-fixed-left, 0px) !important;
    top: var(--ranking-filters-fixed-top, 0px) !important;
  
    width: calc(100vw - var(--ranking-filters-fixed-left, 0px)) !important;
    max-width: calc(100vw - var(--ranking-filters-fixed-left, 0px)) !important;
    min-width: 0 !important;
  
    min-height: var(--ranking-filters-fixed-height, 40px) !important;
  
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
  
    overflow: visible !important;
    transform: translate3d(0,0,0) !important;
    will-change: top !important;
    box-sizing: border-box !important;
    z-index: 1000000 !important;
    pointer-events: auto !important;
  }/* Cuando la barra está fuera de pantalla verticalmente,
  se oculta */
  html body:not(.et-fb) #ranking-root .filters-top-fixed-inner.ranking-filters-offscreen {
    visibility: hidden !important;
    pointer-events: none !important;
  }/* Neutralizar cualquier clase antigua */
  html body:not(.et-fb) .filters-top.ranking-fixed-x,
  html body:not(.et-fb) #ranking-root .filters-top.ranking-fixed-x {
    transform: none !important;
    translate: none !important;
    will-change: auto !important;
  }/* ============================================================
     FIX FINAL — ALINEACIÓN VERTICAL BARRA SUPERIOR
     Todos los hijos de .filters-top-fixed-inner usan la misma altura
     visual y se centran en el eje Y.
     ============================================================ */
  
  html body:not(.et-fb) #ranking-root .filters-top.filters-top-fixed-x,
  html body:not(.et-fb) #page-container #ranking-root .filters-top.filters-top-fixed-x {
    height: var(--ranking-filters-fixed-height, 36px) !important;
    min-height: var(--ranking-filters-fixed-height, 36px) !important;
    line-height: 36px !important;
  }html body:not(.et-fb) #ranking-root .filters-top-fixed-inner,
  html body:not(.et-fb) #page-container #ranking-root .filters-top-fixed-inner {
    height: var(--ranking-filters-fixed-height, 36px) !important;
    min-height: var(--ranking-filters-fixed-height, 36px) !important;
  
    display: flex !important;
    align-items: center !important;
    align-content: center !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
  
    line-height: 36px !important;
  }/* ============================================================
     FIX FINAL — BARRA CONTROLES ALINEADA CON CONTENIDO
     No pegada a x=0; usa la izquierda natural del módulo.
     ============================================================ */
  
  html body:not(.et-fb) #ranking-root .filters-top-fixed-inner,
  html body:not(.et-fb) #page-container #ranking-root .filters-top-fixed-inner {
    left: var(--ranking-filters-fixed-left, 0px) !important;
    width: calc(100vw - var(--ranking-filters-fixed-left, 0px)) !important;
    max-width: calc(100vw - var(--ranking-filters-fixed-left, 0px)) !important;
    min-width: 0 !important;
  }/* --- Fila FILTROS de la tabla: NO sticky VERTICAL en modo premium simple.
     Scroll natural; al pasar arriba sigue solo la fila TÍTULOS. Las cols 1-2
     sí se quedan pegadas a la IZQUIERDA cuando hay h-scroll (sticky left)
     con CAPA 1 sagrada para que tapen los datos cols 3+ que pasan por detrás. */
  
  /* Sin h-scroll: filter row totalmente static (scroll natural completo). */
  html:not([data-ranking-h-scrolled]) body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th,
  html:not([data-ranking-h-scrolled]) body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
  }/* Con h-scroll: cols >=3 siguen static (la fila se rompe horizontalmente,
  las cols 1-2 quedan ancladas a la izquierda y el resto scrollea). */
  html[data-ranking-h-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(n+3),
  html[data-ranking-h-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(n+3) {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
  }/* Con h-scroll: cols 1-2 de filter row sticky SOLO horizontal
     (top: auto para que no se queden pegadas arriba). CAPA 1 sagrada.
     El BACKGROUND se gestiona aparte para diferenciar h-only / v-only / h+v. */
  html[data-ranking-h-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(1),
  html[data-ranking-h-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(1) {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: auto !important;
    left: 0 !important;
    z-index: 9000000 !important;
  }html[data-ranking-h-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(2),
  html[data-ranking-h-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(2) {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: auto !important;
    left: 150px !important;
    z-index: 9000000 !important;
  }/* Background de cols 1-2 de la fila FILTROS:
       - sin scroll      → transparente (default).
       - h-only          → NEGRO.
       - v-only          → NEGRO.
       - h + v simultán. → TRANSPARENTE (Vanta visible). */
  html[data-ranking-h-scrolled]:not([data-ranking-v-scrolled]) body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(1),
  html[data-ranking-h-scrolled]:not([data-ranking-v-scrolled]) body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(1),
  html[data-ranking-h-scrolled]:not([data-ranking-v-scrolled]) body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(2),
  html[data-ranking-h-scrolled]:not([data-ranking-v-scrolled]) body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(2),
  html[data-ranking-h-scrolled]:not([data-ranking-v-scrolled]) body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(1),
  html[data-ranking-h-scrolled]:not([data-ranking-v-scrolled]) body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(1),
  html[data-ranking-h-scrolled]:not([data-ranking-v-scrolled]) body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(2),
  html[data-ranking-h-scrolled]:not([data-ranking-v-scrolled]) body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(2),
  html[data-ranking-h-scrolled]:not([data-ranking-v-scrolled]) body:not(.et-fb) #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(1),
  html[data-ranking-h-scrolled]:not([data-ranking-v-scrolled]) body:not(.et-fb) #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(1),
  html[data-ranking-h-scrolled]:not([data-ranking-v-scrolled]) body:not(.et-fb) #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(2),
  html[data-ranking-h-scrolled]:not([data-ranking-v-scrolled]) body:not(.et-fb) #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(2),
  html[data-ranking-v-scrolled]:not([data-ranking-h-scrolled]) body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(1),
  html[data-ranking-v-scrolled]:not([data-ranking-h-scrolled]) body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(1),
  html[data-ranking-v-scrolled]:not([data-ranking-h-scrolled]) body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(2),
  html[data-ranking-v-scrolled]:not([data-ranking-h-scrolled]) body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(2),
  html[data-ranking-v-scrolled]:not([data-ranking-h-scrolled]) body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(1),
  html[data-ranking-v-scrolled]:not([data-ranking-h-scrolled]) body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(1),
  html[data-ranking-v-scrolled]:not([data-ranking-h-scrolled]) body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(2),
  html[data-ranking-v-scrolled]:not([data-ranking-h-scrolled]) body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(2),
  html[data-ranking-v-scrolled]:not([data-ranking-h-scrolled]) body:not(.et-fb) #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(1),
  html[data-ranking-v-scrolled]:not([data-ranking-h-scrolled]) body:not(.et-fb) #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(1),
  html[data-ranking-v-scrolled]:not([data-ranking-h-scrolled]) body:not(.et-fb) #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(2),
  html[data-ranking-v-scrolled]:not([data-ranking-h-scrolled]) body:not(.et-fb) #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(2) {
    background: rgb(var(--ranking-frozen-bg, 5, 8, 17)) !important;
    background-color: rgb(var(--ranking-frozen-bg, 5, 8, 17)) !important;
    background-image: none !important;
  }/* h + v: forzar transparente,
  ganando a cualquier regla anterior. */
  html[data-ranking-h-scrolled][data-ranking-v-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(1),
  html[data-ranking-h-scrolled][data-ranking-v-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(1),
  html[data-ranking-h-scrolled][data-ranking-v-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(2),
  html[data-ranking-h-scrolled][data-ranking-v-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(2),
  html[data-ranking-h-scrolled][data-ranking-v-scrolled] body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(1),
  html[data-ranking-h-scrolled][data-ranking-v-scrolled] body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(1),
  html[data-ranking-h-scrolled][data-ranking-v-scrolled] body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(2),
  html[data-ranking-h-scrolled][data-ranking-v-scrolled] body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(2),
  html[data-ranking-h-scrolled][data-ranking-v-scrolled] body:not(.et-fb) #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(1),
  html[data-ranking-h-scrolled][data-ranking-v-scrolled] body:not(.et-fb) #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(1),
  html[data-ranking-h-scrolled][data-ranking-v-scrolled] body:not(.et-fb) #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th:nth-child(2),
  html[data-ranking-h-scrolled][data-ranking-v-scrolled] body:not(.et-fb) #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td:nth-child(2) {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
  }/* DEBUG alineación MEDIA: th de esta fila tienen sticky vertical; rect viewport
     puede no coincidir con td MEDIA aunque columnas sí — medir Δrej rel. a <tr>. */
  html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row + tr th,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row + tr th,
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row + tr th,
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row + tr th {
    position: sticky !important;
    top: 66px !important;
    z-index: 7000000 !important;
    background: transparent !important;
    color: #ffffff !important;
  }html body:not(.et-fb).admin-bar #page-container #ranking-root table#table tr.excel-filter-row + tr th,
  html body:not(.et-fb).admin-bar #page-container .et_pb_code_inner table#table tr.excel-filter-row + tr th,
  html body:not(.et-fb).admin-bar #ranking-root table#table tr.excel-filter-row + tr th,
  body:not(.et-fb).admin-bar .et_pb_code_inner table#table tr.excel-filter-row + tr th {
    top: 98px !important;
  }@media (max-width: 980px) and (orientation: landscape) {
  html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row + tr th,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row + tr th,
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row + tr th,
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row + tr th {
    top: 66px !important;
  }html body:not(.et-fb).admin-bar #page-container #ranking-root table#table tr.excel-filter-row + tr th,
  html body:not(.et-fb).admin-bar #page-container .et_pb_code_inner table#table tr.excel-filter-row + tr th,
  html body:not(.et-fb).admin-bar #ranking-root table#table tr.excel-filter-row + tr th,
  body:not(.et-fb).admin-bar .et_pb_code_inner table#table tr.excel-filter-row + tr th {
    top: 98px !important;
  }
  }html[data-ranking-v-scrolled="1"] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row + tr th,
  html[data-ranking-v-scrolled="1"] body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row + tr th,
  html[data-ranking-v-scrolled="1"] body:not(.et-fb) #ranking-root table#table tr.excel-filter-row + tr th,
  html[data-ranking-v-scrolled="1"] body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row + tr th {
    background: rgb(var(--ranking-frozen-bg, 5, 8, 17)) !important;
    background-color: rgb(var(--ranking-frozen-bg, 5, 8, 17)) !important;
    background-image: none !important;
    color: #ffffff !important;
  }/* Cols 1-2 de la fila TÍTULOS (CAPA 1 sagrada): NEGRO con cualquier
     scroll (v O h). Mantiene la columna ticker / empresa siempre legible
     sobre fondo opaco cuando algo se está moviendo detrás. */
  html[data-ranking-v-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row + tr th:nth-child(1),
  html[data-ranking-v-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row + tr th:nth-child(2),
  html[data-ranking-h-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row + tr th:nth-child(1),
  html[data-ranking-h-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row + tr th:nth-child(2) {
    background: rgb(var(--ranking-frozen-bg, 5, 8, 17)) !important;
    background-color: rgb(var(--ranking-frozen-bg, 5, 8, 17)) !important;
    background-image: none !important;
  }/* --- CAPA 1 SAGRADA: cabeceras cols 1-2 de la fila TÍTULOS por encima
     de TODO (cabeceras 3+,
  datos,
  header de página). z-index 9 000 000. --- */
  html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row + tr th:nth-child(1) {
    z-index: 9000000 !important;
  }html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row + tr th:nth-child(2) {
    z-index: 9000000 !important;
  }/* Con h-scroll: cols 1-2 de TÍTULOS también ancladas a la izquierda
     (sticky doble eje: top + left). */
  html[data-ranking-h-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row + tr th:nth-child(1) {
    left: 0 !important;
  }html[data-ranking-h-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row + tr th:nth-child(2) {
    left: 150px !important;
  }/* --- CAPA 2: datos cols 1-2 cuando hay scroll horizontal (sticky left).
     Sobre datos cols 3+ pero por debajo de cabeceras cols 1-2. Fondo
     theme-aware: oscuro en dark,
  blanco/slate en light. --- */
  html[data-ranking-h-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tbody td:nth-child(1),
  html[data-ranking-h-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tbody td:nth-child(2) {
    z-index: 8000000 !important;
  }/* Datos cols 1-2 con h-scroll: fondo opaco (tema vía variables en #table). */
  html[data-ranking-h-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tbody td:nth-child(1),
  html[data-ranking-h-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tbody td:nth-child(2) {
    background: var(--ranking-hscroll-frozen-td12-body) !important;
    background-color: var(--ranking-hscroll-frozen-td12-body) !important;
    background-image: none !important;
  }html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row + tr th * {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
  }/* Cabecera col 1 ::before "GRÁFICO": color blanco gestionado en la regla
     genérica más abajo (sin selector light) — el sistema arquitectónico es
     común a dark/light. */
  /* ============================================================
     FIN STICKY PREMIUM SIMPLE
     ============================================================ */
  
  /* ============================================================
     FIX — quitar padding lateral Divi del Row del ranking
     Validado por consola: REMOVE_DIVI_ROW_LEFT_PADDING_KEEP_STICKY
     Mantiene #ranking-root con overflow visible para no romper sticky vertical.
     ============================================================ */
  html body:not(.et-fb) #fondo-vanta .et_pb_row:has(#ranking-root),
  html body:not(.et-fb) #page-container #fondo-vanta .et_pb_row:has(#ranking-root),
  html body:not(.et-fb) #page-container .et_pb_row:has(#ranking-root) {
    padding-left: 0px !important;
    padding-right: 0px !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
  }html body:not(.et-fb) #fondo-vanta .et_pb_column:has(#ranking-root),
  html body:not(.et-fb) #page-container #fondo-vanta .et_pb_column:has(#ranking-root),
  html body:not(.et-fb) #page-container .et_pb_column:has(#ranking-root) {
    padding-left: 0px !important;
    padding-right: 0px !important;
    margin-left: 0px !important;
    margin-right: 0px !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
  }html body:not(.et-fb) #page-container #fondo-vanta .et_pb_row_0 {
    padding-left: 0px !important;
    padding-right: 0px !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
  }html body:not(.et-fb) #page-container #fondo-vanta .et_pb_column_0 {
    padding-left: 0px !important;
    padding-right: 0px !important;
    margin-left: 0px !important;
    margin-right: 0px !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
  }/* Refuerzo explícito: NO convertir #ranking-root en contenedor de scroll.
     El sticky vertical depende de que siga visible/visible. */
  html body:not(.et-fb) #ranking-root,
  html body:not(.et-fb) #page-container #ranking-root {
    overflow-x: visible !important;
    overflow-y: visible !important;
  }/* Columna EMPRESA (col 2): ancho 220px (200px nombre + 32px logo + 8px gap + 5px holgura)
     y truncado con "..." si el nombre se sale. Aplica a TH y TDs (datos y SP500). */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table th:nth-child(2),
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td:nth-child(2),
  html body:not(.et-fb) #ranking-root table#table th:nth-child(2),
  html body:not(.et-fb) #ranking-root table#table td:nth-child(2),
  body:not(.et-fb) .et_pb_code_inner table#table th:nth-child(2),
  body:not(.et-fb) .et_pb_code_inner table#table td:nth-child(2) {
    width: 220px !important;
    min-width: 220px !important;
    max-width: 220px !important;
    white-space: nowrap !important;
    overflow: visible !important; /* conserva el layout fijo logo + nombre y sus controles inline */
    text-overflow: clip !important;
    box-sizing: border-box !important;
  }/* ============================================================
     BUENA — EMPRESA cabecera
     ============================================================ */
  
  html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="empresa"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="empresa"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="empresa"] {
    padding-top: 39px !important;
    padding-bottom: 0 !important;
    line-height: 16px !important;
    text-align: center !important;
    vertical-align: top !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
  }html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="empresa"] .ranking-col-header-toggle-root,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="empresa"] .ranking-col-header-toggle-root,
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="empresa"] .ranking-col-header-toggle-root {
    position: absolute !important;left: auto !important;right: 8px !important;top: auto !important;bottom: 18px !important;transform: none !important;display: inline-flex !important;align-items: center !important;justify-content: flex-end !important;gap: 15px !important;width: max-content !important;max-width: none !important;margin: 0 !important;padding: 0 8px 0 0 !important;box-sizing: border-box !important;z-index: 12 !important;white-space: nowrap !important;overflow: visible !important;
  }/* Hijos directos de la celda Empresa: NO aplicar la regla genérica de
     inline-block + ellipsis al wrapper flex (.ranking-empresa-wrap) porque
     rompe el layout logo+nombre. Aplicamos la regla solo si NO es el wrap. */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td:nth-child(2) > *:not(.ranking-empresa-wrap):not(.empresa-logo-wrap):not(.empresa-name-chart-trigger):not(.empresa-web-link),
  html body:not(.et-fb) #ranking-root table#table td:nth-child(2) > *:not(.ranking-empresa-wrap):not(.empresa-logo-wrap):not(.empresa-name-chart-trigger):not(.empresa-web-link),
  body:not(.et-fb) .et_pb_code_inner table#table td:nth-child(2) > *:not(.ranking-empresa-wrap):not(.empresa-logo-wrap):not(.empresa-name-chart-trigger):not(.empresa-web-link) {
    display: inline-block !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    vertical-align: middle !important;
  }  /* ============================================================
     LOGO EMPRESA: caja fija 32x32, sin ampliación en hover.
     El logo y su monograma de fallback son el único punto de activación de
     la copia de la ficha IA V3; el nombre de empresa conserva sus gráficos.
     ============================================================ */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table .ranking-empresa-wrap,
  html body:not(.et-fb) #ranking-root table#table .ranking-empresa-wrap {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 32px !important;
    vertical-align: middle !important;
    overflow: visible !important;
  }
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table .ranking-empresa-logo,
  html body:not(.et-fb) #ranking-root table#table .ranking-empresa-logo,
  body:not(.et-fb) .et_pb_code_inner table#table .ranking-empresa-logo {
    flex: 0 0 auto !important;
    width: 32px !important;
    height: 32px !important;
    max-width: 32px !important;
    max-height: 32px !important;
    border-radius: 6px !important;
    object-fit: contain !important;
    background: #ffffff !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    border: 0.5px solid rgba(0, 0, 0, 0.22) !important;
    outline: none !important;
    box-shadow: none !important;
    transform: none !important;
    transition: none !important;
    position: relative !important;
    z-index: 1 !important;
    cursor: copy !important;
    touch-action: manipulation !important;
  }
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table .ranking-empresa-logo-wrap,
  html body:not(.et-fb) #ranking-root table#table .ranking-empresa-logo-wrap,
  body:not(.et-fb) .et_pb_code_inner table#table .ranking-empresa-logo-wrap {
    position: relative !important;
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    height: 32px !important;
    vertical-align: middle !important;
    overflow: visible !important;
    z-index: 1 !important;
    cursor: copy !important;
    touch-action: manipulation !important;
  }
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table .ranking-empresa-logo-wrap::before,
  html body:not(.et-fb) #ranking-root table#table .ranking-empresa-logo-wrap::before,
  body:not(.et-fb) .et_pb_code_inner table#table .ranking-empresa-logo-wrap::before {
    content: none !important;
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    pointer-events: none !important;
  }
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table .ranking-empresa-logo-fallback,
  html body:not(.et-fb) #ranking-root table#table .ranking-empresa-logo-fallback,
  body:not(.et-fb) .et_pb_code_inner table#table .ranking-empresa-logo-fallback {
    cursor: copy !important;
    transform: none !important;
    transition: none !important;
    box-shadow: none !important;
  }
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table .ranking-empresa-logo-wrap:focus-visible,
  html body:not(.et-fb) #ranking-root table#table .ranking-empresa-logo-wrap:focus-visible,
  body:not(.et-fb) .et_pb_code_inner table#table .ranking-empresa-logo-wrap:focus-visible {
    outline: 2px solid #38bdf8 !important;
    outline-offset: 2px !important;
    border-radius: 6px !important;
  }
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table .ranking-logo-chart-btn,
  html body:not(.et-fb) #ranking-root table#table .ranking-logo-chart-btn,
  body:not(.et-fb) .et_pb_code_inner table#table .ranking-logo-chart-btn {
    display: none !important;
    pointer-events: none !important;
  }
html body:not(.et-fb) #page-container .et_pb_code_inner table#table .ranking-empresa-name,
  html body:not(.et-fb) #ranking-root table#table .ranking-empresa-name {
    /* flex: 0 1 auto → el elemento toma SOLO el ancho del texto (no llena la celda),
       pero puede encogerse con ellipsis si el nombre no cabe. */
    flex: 0 1 auto !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    display: inline-block !important;
    max-width: 100% !important;
    vertical-align: middle !important;
    position: relative !important;
  }/* Estado base del nombre como link <a>: sin subrayado,
  sin sombras,
  sin outlines. La LÍNEA AZUL se hace con background-image para que
     no se corte por el overflow:hidden necesario para el ellipsis.
     - padding-bottom: 6px → reserva 6px DEBAJO del texto para la línea,
  creando una distancia clara entre el texto y la línea (como en la
       referencia "Advanced Micro Devices").
     - line-height: 1.1 → mantiene el alto del <a> compacto pese al padding. */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="empresa"] .ranking-empresa-name,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td:nth-child(2) .ranking-empresa-name,
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="empresa"] .ranking-empresa-name,
  html body:not(.et-fb) #ranking-root table#table td:nth-child(2) .ranking-empresa-name {
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
    text-decoration: none !important;
    border: 0 none transparent !important;
    box-shadow: none !important;
    text-shadow: none !important;
    filter: none !important;
    outline: none !important;
    padding: 0 0 8px 0 !important;
    margin: 0 !important;
    line-height: 1.1 !important;
    /* Línea azul como background-image (linear-gradient) anclada abajo
       izquierda. Ancho inicial 0 → no visible. En :hover de la fila
       pasa a 100% con transición 280ms = animación izquierda→derecha.
       Color: #2f7df6 (línea empresa / logo "AI"). Grosor: 3px. */
    background-image: linear-gradient(#2f7df6, #2f7df6) !important;
    background-position: 0 100% !important;
    background-repeat: no-repeat !important;
    background-size: 0% 3px !important;
    background-color: transparent !important;
    transition: background-size 0.28s cubic-bezier(0.4, 0, 0.2, 1) !important;
  }/* Hover en CUALQUIER parte de la fila → la línea crece de 0 a 100%. */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody tr:not(.excel-filter-row):hover td[data-col-key="empresa"] .ranking-empresa-name,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody tr:not(.excel-filter-row):hover td:nth-child(2) .ranking-empresa-name,
  html body:not(.et-fb) #ranking-root table#table tbody tr:not(.excel-filter-row):hover td[data-col-key="empresa"] .ranking-empresa-name,
  html body:not(.et-fb) #ranking-root table#table tbody tr:not(.excel-filter-row):hover td:nth-child(2) .ranking-empresa-name {
    background-size: 100% 3px !important;
    /* Refuerzo: nada de sombras/outlines/filters al hover (Divi a veces
       inyecta box-shadow o filter en links en estado hover, sobre todo
       en tema light). */
    text-decoration: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    filter: none !important;
    outline: none !important;
    background-color: transparent !important;
  }/* NEUTRALIZAR cualquier sombra residual sobre celda Empresa,
  su wrap o el
     nombre cuando la fila está en hover. Divi puede inyectar box-shadow /
     text-shadow / filter en links activos. Lo apagamos con specifity alta. */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody tr:not(.excel-filter-row):hover td:nth-child(2),
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody tr:not(.excel-filter-row):hover .ranking-empresa-wrap,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody tr:not(.excel-filter-row):hover .ranking-empresa-name,
  html body:not(.et-fb) #ranking-root table#table tbody tr:not(.excel-filter-row):hover td:nth-child(2),
  html body:not(.et-fb) #ranking-root table#table tbody tr:not(.excel-filter-row):hover .ranking-empresa-wrap,
  html body:not(.et-fb) #ranking-root table#table tbody tr:not(.excel-filter-row):hover .ranking-empresa-name {
    box-shadow: none !important;
    text-shadow: none !important;
    filter: none !important;
  }/* TOOLTIP DEL DOMINIO ELIMINADO a petición del usuario.
     Antes había un ::after con el dominio (ej. "applovin.com") sobre el nombre
     en hover. En light theme aparecía como un rectángulo oscuro con sombra
     que el usuario percibía como "sombra fea". Eliminado.
     Si en algún momento se quiere recuperar,
  basta con volver a poner el
     bloque ::after y :hover::after. */
  
  /* EMPRESA — nombre abre gráfico; bola mundo es <a href> real */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table .empresa-name-chart-trigger,
  html body:not(.et-fb) #ranking-root table#table .empresa-name-chart-trigger,
  body:not(.et-fb) .et_pb_code_inner table#table .empresa-name-chart-trigger {
    appearance: none !important;
    border: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    font: inherit !important;
    font-weight: 700 !important;
    color: inherit !important;
    cursor: pointer !important;
    text-align: left !important;
  }
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table .empresa-name-chart-trigger:hover,
  html body:not(.et-fb) #ranking-root table#table .empresa-name-chart-trigger:hover,
  body:not(.et-fb) .et_pb_code_inner table#table .empresa-name-chart-trigger:hover {
    color: #2f7df6 !important;
    text-decoration: none !important;
    text-underline-offset: 0 !important;
  }
  #ranking-root table#table tbody tr[data-row-type="sp500"] td[data-col-key="empresa"] .ranking-empresa-name,
  #ranking-root table#table tbody tr[data-ticker="SPY"] td[data-col-key="empresa"] .ranking-empresa-name {
    cursor: pointer !important;
  }
  #ranking-root table#table tbody tr[data-row-type="media"] td[data-col-key="empresa"] .ranking-empresa-name.empresa-name-chart-trigger,
  #ranking-root table#table tbody tr[data-ticker="MEDIA"] td[data-col-key="empresa"] .ranking-empresa-name.empresa-name-chart-trigger {
    cursor: pointer !important;
  }
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table .empresa-web-link,
  html body:not(.et-fb) #ranking-root table#table .empresa-web-link,
  body:not(.et-fb) .et_pb_code_inner table#table .empresa-web-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-left: 6px !important;
    text-decoration: none !important;
    cursor: pointer !important;
    color: #2f7df6 !important;
    flex: 0 0 auto !important;
    width: 18px !important;
    height: 18px !important;
    line-height: 18px !important;
    pointer-events: auto !important;
    transition: transform .16s ease, filter .16s ease !important;
  }
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table .empresa-web-link:hover,
  html body:not(.et-fb) #ranking-root table#table .empresa-web-link:hover,
  body:not(.et-fb) .et_pb_code_inner table#table .empresa-web-link:hover {
    transform: scale(1.18) !important;
    filter: drop-shadow(0 0 8px rgba(47,125,246,.75)) !important;
  }
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table .ranking-logo-chart-btn,
  html body:not(.et-fb) #ranking-root table#table .ranking-logo-chart-btn,
  body:not(.et-fb) .et_pb_code_inner table#table .ranking-logo-chart-btn,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table .ranking-logo-chart-btn-icon,
  html body:not(.et-fb) #ranking-root table#table .ranking-logo-chart-btn-icon,
  body:not(.et-fb) .et_pb_code_inner table#table .ranking-logo-chart-btn-icon {
    display: none !important;
    pointer-events: none !important;
  }
  
  /* FASE 3: bloque legacy SP500 row (13px/400 vía nth-child / nth-last-child
     y data-ranking-anos-col) eliminado. La tipografía 12px / 400 de Fecha
     inicial,
  Fecha actual,
  Fecha SP500,
  Años SP500,
  Fundada y Sector en
     la fila SP500 vive ahora en la capa semántica por data-col-key (R101 +
     SP500-SEM en html.html). Subsector SP500 sigue en 11px (SUBSECTOR-SEM
     en html.html). */
  
  /* Igualar el alto de todas las filas tbody (TODAS = 41px = data-row v1).
     Override antiguo de 38px movido al final con máxima specificity para
     uniformizar SP500 + MEDIA + data en 41px exactos. Ellipsis para textos
     largos (ej. "Advanced Micro Devices",
  "Comfort Systems USA"). */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td,
  html body:not(.et-fb) #ranking-root table#table tbody td,
  body:not(.et-fb) .et_pb_code_inner table#table tbody td {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }/* Años (1/5/10/15/20): anular ellipsis global — mostrar importe completo. */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="1 anos"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="5 anos"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="10 anos"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="15 anos"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="20 anos"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="1 anos"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="5 anos"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="10 anos"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="15 anos"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="20 anos"] {
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
  }/* FASE 3: bloque "Override final tipografía cols 5-8" SP500 (Inter
     15/16 / 700 + spans + tabular-nums) eliminado. La tipografía métrica
     SP500/MEDIA queda gobernada por la capa semántica única
     `td[data-col-key]` métricas (crecimiento,
  gagr,
  fx,
  patrimon) / `td.ranking-metric-col` (Arial
     15/16 / 800) más abajo. La uniformidad tabular-nums se mantiene en
     la sección 17 ("NUMERIC METRICS: tabular-nums obligatorio"). */
  
  /* ============================================================
     1. LOGO PRINCIPAL
     ============================================================ */
  body:not(.et-fb) .logo {
    font-family: "Playfair Display", serif;
    font-size: 80px;
    letter-spacing: 1px;
    font-weight: 400;
    color: #f4f4f2;
    margin: 0;
  }body:not(.et-fb) .logo .ai {
    font-family: Inter, Arial, sans-serif;
    font-weight: 400;
    color: #2f7df6;
    letter-spacing: -1px;
  }/* ============================================================
     2. BASE GENERAL WEB
     ============================================================ */
  body:not(.et-fb) .entry-content,
  body:not(.et-fb) .et_pb_section,
  body:not(.et-fb) .et_pb_row,
  body:not(.et-fb) .et_pb_column {
    max-width: none !important;
  }/* ============================================================
     3. TÍTULO RANKING
     ============================================================ */
  body:not(.et-fb) .ranking-header {
    text-align: center !important;
    margin: 45px auto 22px auto !important;
  }body:not(.et-fb) .ranking-header h1 {
    font-size: 42px !important;
    line-height: 1.1 !important;
    font-weight: 800 !important;
    color: #0f172a !important;
    margin: 0 0 8px 0 !important;
  }body:not(.et-fb) .ranking-header p {
    font-size: 17px !important;
    color: #64748b !important;
    margin: 0 !important;
  }/* ============================================================
     4. FECHA,
  INPUTS Y BOTONES SUPERIORES
     ============================================================ */
  body:not(.et-fb) form,
  body:not(.et-fb) .et_pb_code_inner > div:first-child {
    text-align: center !important;
  }body:not(.et-fb) .et_pb_code_inner input[type="date"],
  body:not(.et-fb) .et_pb_code_inner input[type="text"] {
    height: 42px !important;
    border: 1px solid #dbe3ef !important;
    border-radius: 7px !important;
    padding: 0 14px !important;
    font-size: 15px !important;
    color: #0f172a !important;
    background: #ffffff !important;
    box-shadow: 0 1px 2px rgba(15,23,42,0.04) !important;
    display: inline-block !important;
    vertical-align: middle !important;
  }body:not(.et-fb) .et_pb_code_inner button,
  body:not(.et-fb) .et_pb_code_inner input[type="button"],
  body:not(.et-fb) .et_pb_code_inner input[type="submit"] {
    height: 42px !important;
    background: linear-gradient(135deg, #2563eb, #1d8df2) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 7px !important;
    padding: 0 22px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.25) !important;
    display: inline-block !important;
    vertical-align: middle !important;
  }body:not(.et-fb) .et_pb_code_inner button:hover,
  body:not(.et-fb) .et_pb_code_inner input[type="button"]:hover,
  body:not(.et-fb) .et_pb_code_inner input[type="submit"]:hover {
    transform: translateY(-1px) !important;
    opacity: 0.9 !important;
  }/* ============================================================
     5. TABLA PRINCIPAL
     ============================================================ */
  body:not(.et-fb) .et_pb_code_inner table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 10px auto 0 auto !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: #0f172a !important;
    table-layout: auto !important;
    overflow: visible !important;
    border-style: none !important;
    border-width: 0 !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
  }/* Sin borde inferior en la tabla: la raya bajo los botones la causaba este border-bottom.
     Fondo BLANCO en la tabla (no negro): el js.txt embebido la pintaba negra y eso hacía
     que cualquier subpixel-gap entre celdas se viera como una línea negra. Con fondo
     blanco,
  los gaps (si los hay) se mimetizan con las filas tbody (también blancas). */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table,
  html body:not(.et-fb) #ranking-root table#table,
  body:not(.et-fb) .et_pb_code_inner table#table {
    border-bottom: none !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background-color: transparent !important;
    background: transparent !important;
  }/* Fondo translúcido SOLO en la parte de datos (tbody),
  NO en cabeceras (thead).
     DARK: negro al 60%. LIGHT: blanco al 50%. */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody,
  html body:not(.et-fb) #ranking-root table#table tbody {
    background-color: rgba(0, 0, 0, 0.6) !important;
  }html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody,
  html[data-theme="light"] body:not(.et-fb) #ranking-root table#table tbody {
    background-color: rgba(255, 255, 255, 0.5) !important;
  }/* Tokens de scroll/stacking en #table: una sola arquitectura; light solo cambia variables. */
  html body:not(.et-fb) #ranking-root table#table,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table {
    --ranking-hscroll-n3-stack-z: -1;
    --ranking-hscroll-sp500media-n3-cell-bg: transparent;
    --ranking-hscroll-sp500media-n3-isolation: auto;
    --ranking-hscroll-tbody-n3-scroll-bg: rgba(var(--ranking-frozen-bg, 5, 8, 17), 0.25);
    --ranking-hscroll-tbody-n3-isolation: auto;
    /* Dark theme: cols 1+2 BG = frozen-bg (negro). Light theme override
       más abajo (línea ~954) lo cambia a blanco vía
       --ranking-hscroll-tbody-n3-scroll-bg. */
    --ranking-hscroll-frozen-td12-body: rgb(var(--ranking-frozen-bg, 5, 8, 17));
    --ranking-hscroll-frozen-td12-special: rgb(var(--ranking-frozen-bg, 5, 8, 17));
    --ranking-row-hover-overlay: rgba(65, 180, 255, 0.32);
    --ranking-hscroll-row-hover-scroll-bg: var(--ranking-row-hover-overlay);
    --ranking-col2-hscroll-edge-shadow: 10px 0 14px -6px rgba(0, 0, 0, 0.42);
  }html[data-theme="light"] body:not(.et-fb) #ranking-root table#table,
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table#table {
    --ranking-hscroll-n3-stack-z: 0;
    --ranking-hscroll-sp500media-n3-cell-bg: #f1f5f9;
    --ranking-hscroll-sp500media-n3-isolation: isolate;
    --ranking-hscroll-tbody-n3-scroll-bg: #ffffff;
    --ranking-hscroll-tbody-n3-isolation: isolate;
    --ranking-hscroll-frozen-td12-body: var(--ranking-hscroll-tbody-n3-scroll-bg);
    --ranking-hscroll-frozen-td12-special: var(--ranking-hscroll-sp500media-n3-cell-bg);
    --ranking-row-hover-overlay: rgba(65, 180, 255, 0.14);
    --ranking-col2-hscroll-edge-shadow: 10px 0 16px -6px rgba(15, 23, 42, 0.16);
  }/* Refuerzo: ningún elemento de la tabla ni su cabecera puede dibujar borde superior/inferior
     propio que se confunda con una raya horizontal cuando aún no hay datos. */
  html body:not(.et-fb) #ranking-root table#table > thead,
  html body:not(.et-fb) #ranking-root table#table > tbody,
  html body:not(.et-fb) #ranking-root table#table > thead > tr,
  html body:not(.et-fb) #ranking-root table#table > tbody > tr {
    border: none !important;
  }/* Ranking: la tabla puede ser más ancha que el contenedor → scroll horizontal; columnas métricas siguen al contenido */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table,
  html body:not(.et-fb) #ranking-root table#table,
  body:not(.et-fb) .et_pb_code_inner table#table {
    width: max-content !important;
    min-width: max-content !important;
    max-width: none !important;
    table-layout: auto !important;
  }html body:not(.et-fb) #page-container table {
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
  }/* Marco lateral fuera de filtros + fila de títulos (sin línea vertical en primera/última celda del thead superior) */
  html body:not(.et-fb) #page-container .et_pb_code_inner table tr.excel-filter-row + tr th:first-child,
  body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row + tr th:first-child {
    border-left: none !important;
  }html body:not(.et-fb) #page-container .et_pb_code_inner table tr.excel-filter-row + tr th:last-child,
  body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row + tr th:last-child {
    border-right: none !important;
  }/* ============================================================
     6. FILTROS — NO STICKY VERTICAL
     ============================================================ */
  
  body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row:not(.ranking-media-row-styled) th,
  body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row:not(.ranking-media-row-styled) td,
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) th,
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) td,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) th,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) td {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
    height: 104px !important;
    padding: 4px 5px 10px 5px !important;
    vertical-align: bottom !important;
    border: none !important;
    box-shadow: none !important;
    overflow: hidden !important;
    clip-path: inset(0) !important;
    isolation: isolate !important;
    box-sizing: border-box !important;
  }/* R173+R176: cabecera titulares — altura fija 116px; icono/título/checkbox por capas absolutas.
     NO display:table-cell!important. */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row + tr th:not(.ranking-th-chart-slot),
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row + tr th:not(.ranking-th-chart-slot),
  html body:not(.et-fb) #page-container table#table tr.excel-filter-row + tr th:not(.ranking-th-chart-slot),
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row + tr th:not(.ranking-th-chart-slot),
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row + tr th:not(.ranking-th-chart-slot) {
    vertical-align: top !important;
    height: 116px !important;
    min-height: 116px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1.25 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row + tr th.ranking-th-chart-slot,
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row + tr th.ranking-th-chart-slot,
  html body:not(.et-fb) #page-container table#table tr.excel-filter-row + tr th.ranking-th-chart-slot,
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row + tr th.ranking-th-chart-slot,
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row + tr th.ranking-th-chart-slot {
    vertical-align: top !important;
    height: 116px !important;
    min-height: 116px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1.25 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }/* FASE 2 cleanup: header "Años en SP500" (wrap 2 líneas) y geometría
     → RANKING_COLS + cellStyle; layout thead vía data-col-key. */
  
  /* Cabecera de columnas: sin padding lateral y centrado. */
  html body:not(.et-fb) #page-container .et_pb_code_inner table tr.excel-filter-row + tr th,
  html body:not(.et-fb) #ranking-root table tr.excel-filter-row + tr th,
  body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row + tr th {
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: center !important;
  }/* Override columnas métricas % / GAGR / FX / PATRIMON (por data-col-key,
  no por posición). */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row + tr th[data-col-key="crecimiento"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row + tr th[data-col-key="gagr"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row + tr th[data-col-key="fx"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row + tr th[data-col-key="patrimon"],
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row + tr th[data-col-key="crecimiento"],
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row + tr th[data-col-key="gagr"],
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row + tr th[data-col-key="fx"],
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row + tr th[data-col-key="patrimon"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row + tr th[data-col-key="crecimiento"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row + tr th[data-col-key="gagr"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row + tr th[data-col-key="fx"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row + tr th[data-col-key="patrimon"] {
    text-align: center !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }/* Filter row de columnas métricas: igualar padding lateral al resto (5px),
  anulando los 14px que aplicaban a th y td indistintamente. */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row th[data-col-key="crecimiento"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row th[data-col-key="gagr"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row th[data-col-key="fx"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row th[data-col-key="patrimon"],
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row th[data-col-key="crecimiento"],
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row th[data-col-key="gagr"],
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row th[data-col-key="fx"],
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row th[data-col-key="patrimon"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row th[data-col-key="crecimiento"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row th[data-col-key="gagr"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row th[data-col-key="fx"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row th[data-col-key="patrimon"] {
    padding-left: 5px !important;
    padding-right: 5px !important;
  }/* Botón dentro de cabecera: anula estilos globales .et_pb_code_inner button (42px,
  padding…)
     Fija dimensiones explícitas para que la imagen 60x60 no desborde por la derecha. */
  html body:not(.et-fb) #ranking-root table .ranking-chart-header-btn,
  html body:not(.et-fb) #page-container .et_pb_code_inner table .ranking-chart-header-btn,
  body:not(.et-fb) .et_pb_code_inner table .ranking-chart-header-btn {
    width: 60px !important;
    min-width: 60px !important;
    max-width: 60px !important;
    height: 60px !important;
    min-height: 60px !important;
    max-height: 60px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    border-radius: 5px !important;
    overflow: hidden !important;
    box-shadow: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }body:not(.et-fb) .et_pb_code_inner table .ranking-chart-header-btn img {
    width: 60px !important;
    height: 60px !important;
    max-width: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    display: block !important;
    border-radius: 5px !important;
  }body:not(.et-fb) .et_pb_code_inner table .ranking-header-chart-wrap {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 5px !important;
    width: 100% !important;
  }body:not(.et-fb) .et_pb_code_inner table .ranking-header-col-label {
    display: block !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    text-transform: inherit !important;
    letter-spacing: inherit !important;
    white-space: nowrap !important;
  }/* Columna 10 años / gráfico: icono arriba en la banda negra de filtros (gana a vertical-align:bottom del JS de integración) */
  html body:not(.et-fb) #page-container table tr.excel-filter-row th:has(.ranking-chart-filter-slot),
  html body:not(.et-fb) #page-container .et_pb_code_inner table tr.excel-filter-row th:has(.ranking-chart-filter-slot) {
    vertical-align: top !important;
    padding-top: 5px !important;
    padding-bottom: 6px !important;
    overflow: visible !important;
  }html body.admin-bar:not(.et-fb) #page-container table tr.excel-filter-row th:has(.ranking-chart-filter-slot),
  html body.admin-bar:not(.et-fb) #page-container .et_pb_code_inner table tr.excel-filter-row th:has(.ranking-chart-filter-slot) {
    vertical-align: top !important;
  }body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row th .ranking-chart-filter-slot,
  html body:not(.et-fb) #page-container table tr.excel-filter-row th .ranking-chart-filter-slot {
    display: flex !important;
    justify-content: center !important;
    align-items: flex-start !important;
    width: 100% !important;
    margin: 0 !important;
    overflow: visible !important;
    padding: 6px 4px !important;
  }/* ============================================================
     8. INPUTS Y SELECTS DE FILTRO
     ============================================================ */
  body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row input,
  body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row select {
    display: block !important;
    width: calc(100% - 6px) !important;
    min-width: 0 !important;
    max-width: calc(100% - 6px) !important;
    height: 22px !important;
    margin-bottom: 3px !important;
    margin-left: 3px !important;
    margin-right: 3px !important;
    font-size: 10px !important;
    border: 1px solid transparent !important;
    border-radius: 4px !important;
    text-align: center !important;
    color: #0f172a !important;
    padding: 2px 3px !important;
    box-shadow: none !important;
    outline: none !important;
    filter: none !important;
    clip-path: inset(0 round 8px) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row input::placeholder {
    color: #94a3b8 !important;
  }
  
  /* MAX_FILTER_BACK_INSIDE_CELL + % max especial */
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) input.max-filter,html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) input.max-filter,body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) input.max-filter{display:block!important;position:static!important;float:none!important;clear:both!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;translate:none!important;width:calc(100% - 6px)!important;min-width:0!important;max-width:calc(100% - 6px)!important;margin-left:3px!important;margin-right:3px!important;margin-bottom:3px!important;box-sizing:border-box!important;overflow:hidden!important;clip-path:inset(0 round 8px)!important}
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled)>th[data-col-key="crecimiento"] input.max-filter,html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled)>th[data-col-key="crecimiento"] input.max-filter,body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled)>th[data-col-key="crecimiento"] input.max-filter{width:calc(100% - 14px)!important;max-width:calc(100% - 14px)!important;margin-left:7px!important;margin-right:7px!important}
  
  /* ============================================================
     FIX ARTEFACTOS — eliminar bordes/separators y reset overflow
     en celdas de filtro. Los pequeños marcas (apostrofes/comas) que
     aparecen al lado derecho de los pills "min"/"max" se deben a
     border-right y/o overflow:visible heredado de Divi/UA. Forzamos
     border:0 y overflow:visible solo en TH (no en pills hijos).
     ============================================================ */
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row > th,
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row > td,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row > th,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row > td,
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row > th,
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row > td {
    border-right: 0 !important;
    border-left: 0 !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
    background-image: none !important;
  }
  /* Ocultar default UA select arrow que puede mostrarse como pequeña
     barra/triángulo en el lado derecho del select aún con appearance:none. */
  html body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row select::-ms-expand,
  html body:not(.et-fb) #ranking-root table tr.excel-filter-row select::-ms-expand,
  html body:not(.et-fb) #page-container .et_pb_code_inner table tr.excel-filter-row select::-ms-expand {
    display: none !important;
  }/* ============================================================
     9. CELDAS DE LA TABLA
     ============================================================ */
  body:not(.et-fb) .et_pb_code_inner table td {
    padding: 8px 8px !important;
    min-height: 30px !important;
    line-height: 1.4 !important;
    border-bottom: 1px solid #e8edf5 !important;
    border-right: none !important;
    vertical-align: middle !important;
    text-align: center !important;
    color: #14213d !important;
  }/* COLUMNA 2: empresa — el  debe seguir siendo table-cell; inline-block aquí rompe el grid y se ve el fondo negro entre filas */
  html body:not(.et-fb) #page-container .et_pb_code_inner table td:nth-child(2) {
      display: table-cell !important;
      vertical-align: middle !important;
      font-size: 17px !important;
      color: #ffffff !important;
      font-weight: 800 !important;
      text-decoration: none !important;
  }html body:not(.et-fb) #page-container .et_pb_code_inner table td:nth-child(2) a,
  html body:not(.et-fb) #page-container .et_pb_code_inner table td:nth-child(2) a span {
      font-size: inherit !important;
      color: #ffffff !important;
      font-weight: 800 !important;
      text-decoration: none !important;
      display: inline-block !important;
  }/* Forzamos que el link no sea azul bajo ningún concepto */
  html body:not(.et-fb) #page-container .et_pb_code_inner table td:nth-child(2) a:link,
  html body:not(.et-fb) #page-container .et_pb_code_inner table td:nth-child(2) a:visited {
      color: #ffffff !important;
  }/* ============================================================
     10. ANCHOS DE COLUMNAS (legacy — sin width nth-child)
     ============================================================ */
  /* FASE 2: reglas nth-child(1|2) width/min/max retiradas (ticker 150px,
     empresa 220px → geometría → RANKING_COLS + cellStyle). Sticky
     left:150px sin tocar. `data-ranking-anos-col` legacy eliminado;
     `anos en sp500` (70px) → RANKING_COLS + cellStyle. */
  /* FASE 3: bloque legacy tbody `data-ranking-anos-col="1"` (13px/400)
     eliminado. La tipografía 12px/400 de "Años en SP500" tbody vive en la
     capa semántica `data-col-key="anos en sp500"` más abajo. */
  html body:not(.et-fb) #page-container .et_pb_code_inner table tr.excel-filter-row + tr th:nth-child(3),
  html body:not(.et-fb) #page-container .et_pb_code_inner table tr.excel-filter-row + tr th:nth-child(4) {
    font-size: 13px !important;
    font-weight: 800 !important;
  }body:not(.et-fb) .et_pb_code_inner table th.ranking-th-chart-slot:nth-child(12),
  body:not(.et-fb) .et_pb_code_inner table th.ranking-th-chart-slot:nth-child(13) {
    overflow: visible !important;
    max-height: none !important;
  }/* Fila filtros: el bloque nth-child(12|13) fuerza overflow:hidden en todos los th; #page-container gana en especificidad y deja ver la sombra */
  html body:not(.et-fb) #page-container .et_pb_code_inner table tr.excel-filter-row th {
    overflow: hidden !important;
    clip-path: inset(0) !important;
    isolation: isolate !important;
  }/* ============================================================
     11. ESTILO VISUAL DE DATOS
     ============================================================ */
  html body:not(.et-fb) #page-container .et_pb_code_inner table tbody td,
  body:not(.et-fb) .et_pb_code_inner table tbody td {
    background-color: transparent !important;
  }
  /* Texto blanco en tbody — dark theme y default (sin atributo data-theme).
     Divi por defecto fuerza color:#666 en td → necesita !important + chain
     amplio. La celda sigue excluyendo data-ranking-sign y la col 1; sus hijos
     excluyen además, sin aumentar la especificidad, los propietarios
     semánticos multivalor de BPA, CORRECCIONES, IMPACTO/GAPS y RSI y sus
     separadores grises. Así la regla blanca
     general no compite con verde/rojo/gris. En light mode baja una capa que
     sobreescribe a #1f2937. */
  html:not([data-theme="light"]) body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td:not([data-ranking-sign]):not(:nth-child(1)):not([data-pai-rsi-tone="low"]):not([data-pai-rsi-tone="high"]),
  html:not([data-theme="light"]) body:not(.et-fb) #ranking-root table#table tbody td:not([data-ranking-sign]):not(:nth-child(1)):not([data-pai-rsi-tone="low"]):not([data-pai-rsi-tone="high"]),
  html:not([data-theme="light"]) body:not(.et-fb) .et_pb_code_inner table#table tbody td:not([data-ranking-sign]):not(:nth-child(1)):not([data-pai-rsi-tone="low"]):not([data-pai-rsi-tone="high"]),
  html[data-theme="dark"] body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td:not([data-ranking-sign]):not(:nth-child(1)):not([data-pai-rsi-tone="low"]):not([data-pai-rsi-tone="high"]),
  html[data-theme="dark"] body:not(.et-fb) #ranking-root table#table tbody td:not([data-ranking-sign]):not(:nth-child(1)):not([data-pai-rsi-tone="low"]):not([data-pai-rsi-tone="high"]) {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
  }
  /* Idem para hijos internos normales; los tonos semánticos conservan su SSOT. */
  html:not([data-theme="light"]) body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td:not([data-ranking-sign]):not(:nth-child(1)):not([data-pai-rsi-tone="low"]):not([data-pai-rsi-tone="high"]) *:not(.ranking-empresa-logo):not(a):not(:where([data-pai-bpa-tone], [data-sp500-correction-value-sign], [data-pai-impact15-tone], .pai-bpa-year-separator, .pai-bpa-year-empty, .ranking-sp500-correction-separator, .ranking-sp500-correction-label, .pai-impact15-dual-sep)),
  html:not([data-theme="light"]) body:not(.et-fb) #ranking-root table#table tbody td:not([data-ranking-sign]):not(:nth-child(1)):not([data-pai-rsi-tone="low"]):not([data-pai-rsi-tone="high"]) *:not(.ranking-empresa-logo):not(a):not(:where([data-pai-bpa-tone], [data-sp500-correction-value-sign], [data-pai-impact15-tone], .pai-bpa-year-separator, .pai-bpa-year-empty, .ranking-sp500-correction-separator, .ranking-sp500-correction-label, .pai-impact15-dual-sep)),
  html[data-theme="dark"] body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td:not([data-ranking-sign]):not(:nth-child(1)):not([data-pai-rsi-tone="low"]):not([data-pai-rsi-tone="high"]) *:not(.ranking-empresa-logo):not(a):not(:where([data-pai-bpa-tone], [data-sp500-correction-value-sign], [data-pai-impact15-tone], .pai-bpa-year-separator, .pai-bpa-year-empty, .ranking-sp500-correction-separator, .ranking-sp500-correction-label, .pai-impact15-dual-sep)),
  html[data-theme="dark"] body:not(.et-fb) #ranking-root table#table tbody td:not([data-ranking-sign]):not(:nth-child(1)):not([data-pai-rsi-tone="low"]):not([data-pai-rsi-tone="high"]) *:not(.ranking-empresa-logo):not(a):not(:where([data-pai-bpa-tone], [data-sp500-correction-value-sign], [data-pai-impact15-tone], .pai-bpa-year-separator, .pai-bpa-year-empty, .ranking-sp500-correction-separator, .ranking-sp500-correction-label, .pai-impact15-dual-sep)) {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
  }
  html body:not(.et-fb) #page-container .et_pb_code_inner table tbody tr:not(.sp500-row-styled),
  body:not(.et-fb) .et_pb_code_inner table tbody tr:not(.sp500-row-styled) {
    background-color: transparent !important;
  }/* SP500: las 4 métricas no heredan 8px a la izquierda del shorthand anterior */
  /* Por data-col-key (crecimiento / gagr / fx / patrimon) {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }/* Tipografía cols 5–8: ver bloque final “Unificación tipográfica” (gana sobre table td y tema) */
  /* Primera fila del tbody: con SP500 visible ya hay hueco por la fila gris → padding moderado */
  html body:not(.et-fb) #page-container .et_pb_code_inner table tbody tr:first-of-type td,
  body:not(.et-fb) .et_pb_code_inner table tbody tr:first-of-type td {
    padding-top: 10px !important;
    padding-bottom: 8px !important;
  }html body:not(.et-fb) #page-container .et_pb_code_inner table tbody tr:first-of-type {
    scroll-margin-top: 140px !important;
  }body:not(.et-fb) .et_pb_code_inner table tbody td:nth-child(1) {
    color: #2f80ed !important;
    font-weight: 400 !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
  }
  /* Ticker azul #2f80ed en AMBOS temas (dark + light). PORT v1 (líneas
     1496-1499 light + 7448-7451 dark). El selector cubre col 1 por
     nth-child Y por data-col-key, y refuerza color en el <a> interno
     (que tiene color:inherit pero Divi puede forzar #666). */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td:nth-child(1),
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="ticker"],
  html body:not(.et-fb) #ranking-root table#table tbody td:nth-child(1),
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="ticker"],
  html[data-theme="dark"] body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td:nth-child(1),
  html[data-theme="dark"] body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="ticker"],
  html[data-theme="dark"] body:not(.et-fb) #ranking-root table#table tbody td:nth-child(1),
  html[data-theme="dark"] body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="ticker"],
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td:nth-child(1),
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="ticker"],
  html[data-theme="light"] body:not(.et-fb) #ranking-root table#table tbody td:nth-child(1),
  html[data-theme="light"] body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="ticker"] {
    color: #2f80ed !important;
    -webkit-text-fill-color: #2f80ed !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    padding-left: 14px !important;
  }
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td:nth-child(1) .ranking-ticker-wrap,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="ticker"] .ranking-ticker-wrap,
  html body:not(.et-fb) #ranking-root table#table tbody td:nth-child(1) .ranking-ticker-wrap,
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="ticker"] .ranking-ticker-wrap,
  html[data-theme="dark"] body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td:nth-child(1) .ranking-ticker-wrap,
  html[data-theme="dark"] body:not(.et-fb) #ranking-root table#table tbody td:nth-child(1) .ranking-ticker-wrap,
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td:nth-child(1) .ranking-ticker-wrap,
  html[data-theme="light"] body:not(.et-fb) #ranking-root table#table tbody td:nth-child(1) .ranking-ticker-wrap {
    transform: translateX(10px) !important;
  }
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td:nth-child(1) a.ranking-ticker-link,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="ticker"] a.ranking-ticker-link,
  html body:not(.et-fb) #ranking-root table#table tbody td:nth-child(1) a.ranking-ticker-link,
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="ticker"] a.ranking-ticker-link,
  html[data-theme="dark"] body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td:nth-child(1) a.ranking-ticker-link,
  html[data-theme="dark"] body:not(.et-fb) #ranking-root table#table tbody td:nth-child(1) a.ranking-ticker-link,
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td:nth-child(1) a.ranking-ticker-link,
  html[data-theme="light"] body:not(.et-fb) #ranking-root table#table tbody td:nth-child(1) a.ranking-ticker-link {
    color: #2f80ed !important;
    -webkit-text-fill-color: #2f80ed !important;
  }
  /* Tamaño/peso cols 5–8 en tbody: unificado con bloque final #page-container */
  /* Prioridad sobre nth-child(5|6): marca desde JS data-ranking-sign (+ WebKit/Divi que fuerza fill) */
  body:not(.et-fb) .et_pb_code_inner table tbody td[data-ranking-sign="pos"] {
    color: #3DB88B !important;
    -webkit-text-fill-color: #3DB88B !important;
  }body:not(.et-fb) .et_pb_code_inner table tbody td[data-ranking-sign="neg"] {
    color: #ef4444 !important;
    -webkit-text-fill-color: #ef4444 !important;
  }body:not(.et-fb) .et_pb_code_inner table tbody td[data-ranking-sign="zero"] {
    color: #64748b !important;
    -webkit-text-fill-color: #64748b !important;
  }html body:not(.et-fb) #page-container .et_pb_code_inner table tbody td[data-ranking-sign="pos"] {
    color: #3DB88B !important;
    -webkit-text-fill-color: #3DB88B !important;
  }html body:not(.et-fb) #page-container .et_pb_code_inner table tbody td[data-ranking-sign="neg"] {
    color: #ef4444 !important;
    -webkit-text-fill-color: #ef4444 !important;
  }html body:not(.et-fb) #page-container .et_pb_code_inner table tbody td[data-ranking-sign="zero"] {
    color: #64748b !important;
    -webkit-text-fill-color: #64748b !important;
  }/* % / GAGR: verde/rojo (JS también pone color inline !important). Sin solo #page-container y con nth-child+nombre por si cambia el orden de columnas */
  body:not(.et-fb) .et_pb_code_inner table tbody td.ranking-val-pos,
  html body:not(.et-fb) #page-container .et_pb_code_inner table tbody td.ranking-val-pos {
    color: #3DB88B !important;
  }body:not(.et-fb) .et_pb_code_inner table tbody td.ranking-val-neg,
  html body:not(.et-fb) #page-container .et_pb_code_inner table tbody td.ranking-val-neg {
    color: #ef4444 !important;
  }body:not(.et-fb) .et_pb_code_inner table tbody td.ranking-val-zero,
  html body:not(.et-fb) #page-container .et_pb_code_inner table tbody td.ranking-val-zero {
    color: #64748b !important;
  }/* ============================================================
     14. RESPONSIVE
     ============================================================ */
  @media (min-width: 1800px) {
    body:not(.et-fb) .et_pb_code_inner,
    body:not(.et-fb) .entry-content > div {
      width: 1680px !important;
    }}
  @media (max-width: 1400px) {
    body:not(.et-fb) .et_pb_code_inner,
    body:not(.et-fb) .entry-content > div {
      width: 96vw !important;
    }}
  /* ============================================================
     16. CENTRADO FECHA,
  BOTÓN Y TABLA
     ============================================================ */
  body:not(.et-fb) .et_pb_code_inner {
    text-align: center !important;
  }body:not(.et-fb) .et_pb_code_inner input[type="date"],
  body:not(.et-fb) .et_pb_code_inner button,
  body:not(.et-fb) .et_pb_code_inner input[type="button"],
  body:not(.et-fb) .et_pb_code_inner input[type="submit"] {
    display: inline-block !important;
    float: none !important;
    margin-left: 4px !important;
    margin-right: 4px !important;
  }body:not(.et-fb) .et_pb_code_inner table {
    margin-left: auto !important;
    margin-right: auto !important;
  }/* ============================================================
     17. HEADER STICKY SOLO EN WEB,
  NO EN DIVI BUILDER
     El header se mantiene fijo arriba pero TRANSPARENTE para que el
     fondo VANTA del body se vea también detrás del logo y el menú.
     ============================================================ */
  /* Header transparente: SOLO sobreescribimos color de fondo y sombras.
     NO tocamos position/top/width/z-index para que Divi gestione su propio
     sticky/fixed natural (logo se reduce al scrollear,
  sigue visible,
  etc.). */
  body:not(.et-fb) #main-header,
  body:not(.et-fb) #top-header,
  body:not(.et-fb) .et_pb_section--header {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    border-bottom: none !important;
  }body:not(.et-fb) #main-header.et-fixed-header {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
  }/* Padding-top y top:32px del page-container/header eliminados — Divi
     gestiona estos automáticamente con sus clases et_fixed_nav,
  .admin-bar,
  etc. Forzarlos rompe el sticky natural del header. */
  @media (min-width: 981px) {
    body:not(.et-fb) #main-header .container {
      width: 100% !important;
      max-width: 100% !important;
      padding-left: 34px !important;
      padding-right: 72px !important;
      box-sizing: border-box !important;
    }
  
    body:not(.et-fb) #main-header .logo_container {
      position: absolute !important;
      left: 34px !important;
      top: 13px !important;
      width: auto !important;
      height: auto !important;
      min-height: 70px !important;
      display: flex !important;
      align-items: center !important;
      overflow: visible !important;
      transform: none !important;
    }
  
    body:not(.et-fb) #main-header #logo,
    body:not(.et-fb) #main-header .logo_container img {
      height: 70px !important;
      max-height: 70px !important;
      min-height: 70px !important;
      width: auto !important;
      max-width: none !important;
      object-fit: contain !important;
      opacity: 1 !important;
      transform: translate(calc(3px - 1.5%), 12px) scale(0.61285) !important;
      transform-origin: left center !important;
    }
  
    body:not(.et-fb) #pai-real-fullscreen-enter-btn,
    body:not(.et-fb) #pai-real-fullscreen-close-btn {
      display: none !important;
      visibility: hidden !important;
      opacity: 0 !important;
      pointer-events: none !important;
    }
  }
  @media only screen and (max-width: 980px) {
    body:not(.et-fb) #top-header {
      background-color: #000000 !important;
      display: block !important;
    }body:not(.et-fb) header .et_pb_section:first-child,
  body:not(.et-fb) .et_pb_section--header .et_pb_section:first-child {
      background-color: #000000 !important;
    }body:not(.et-fb) #top-header span,
  body:not(.et-fb) #top-header a,
  body:not(.et-fb) #et-info span,
  body:not(.et-fb) header .et_pb_section:first-child p,
  body:not(.et-fb) header .et_pb_section:first-child a {
      color: #ffffff !important;
    }}
  @media only screen and (max-width: 767px) and (orientation: portrait) {
    body:not(.et-fb) #main-header #logo,
    body:not(.et-fb) #main-header .logo_container img {
      height: 43px !important;
      max-height: 43px !important;
      min-height: 43px !important;
      width: auto !important;
      max-width: none !important;
      opacity: 1 !important;
      position: relative !important;
      left: 16.26px !important;
      top: 0px !important;
      transform: translate(calc(16px - 26%), 8px) scale(0.9272) !important;
      transform-origin: left center !important;
      object-fit: contain !important;
    }
  }
  @media only screen and (max-width: 980px) and (max-height: 767px) and (orientation: landscape) {
    body:not(.et-fb) #main-header #logo,
    body:not(.et-fb) #main-header .logo_container img {
      height: 68px !important;
      max-height: 68px !important;
      min-height: 68px !important;
      width: auto !important;
      max-width: none !important;
      opacity: 1 !important;
      position: relative !important;
      left: -20px !important;
      top: -18px !important;
      transform: translate(0px, 15px) scale(0.5850) !important;
      transform-origin: left center !important;
      object-fit: contain !important;
    }
  }
  @media only screen and (min-width: 768px) and (max-width: 980px) and (orientation: portrait) {
    body:not(.et-fb) #main-header #logo,
    body:not(.et-fb) #main-header .logo_container img {
      height: 55px !important;
      max-height: 55px !important;
      min-height: 55px !important;
      width: auto !important;
      max-width: none !important;
      opacity: 1 !important;
      position: relative !important;
      left: 19.67px !important;
      top: -3px !important;
      transform: translate(calc(-14px - 24%), 18px) scale(0.8584) !important;
      transform-origin: left center !important;
      object-fit: contain !important;
    }
  }
  @media only screen and (min-width: 981px) and (max-width: 1366px) and (orientation: landscape) and (pointer: coarse) {
    body:not(.et-fb) #main-header #logo,
    body:not(.et-fb) #main-header .logo_container img {
      height: 55px !important;
      max-height: 55px !important;
      min-height: 55px !important;
      width: auto !important;
      max-width: none !important;
      opacity: 1 !important;
      position: relative !important;
      left: 30.47px !important;
      top: 13px !important;
      transform: translate(calc(50px - 24%), 8px) scale(0.9768) !important;
      transform-origin: left center !important;
      object-fit: contain !important;
    }
  }
  @media screen and (max-width: 782px) {
    body:not(.et-fb).admin-bar header,
    body:not(.et-fb).admin-bar #main-header,
    body:not(.et-fb).admin-bar #top-header {
      top: 46px !important;
    }}
  /* ============================================================
     1. LOGO Y BASE
     ============================================================ */
  .logo {
    font-family: serif;
    font-size: 80px;
    color: #f4f4f2;
  }.logo .ai { color: #2f7df6; }/* ============================================================
     2. BOTONES Y "DESDE" (Corregido cierre de llave)
     ============================================================ */
  .label-desde {
    font-size: 16px !important;
    color: #64748b !important;
    font-weight: 600 !important;
    display: inline-block !important;
  }.et_pb_code_inner button,
  .et_pb_code_inner input[type="submit"] {
    height: 42px !important;
    background: linear-gradient(135deg, #2563eb, #1d8df2) !important;
    color: #ffffff !important;
    border-radius: 7px !important;
    padding: 0 22px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
  }/* AQUÍ ESTABA EL ERROR: Añadida la llave } que faltaba */
  .et_pb_code_inner button:hover {
    transform: translateY(-1px) !important;
    opacity: 0.9 !important;
  }/* ============================================================
     3. CELDAS DE LA TABLA (Mantenemos tu diseño)
     — Sin font-size global: %/GAGR/FX/PATRIMON (cols 5–8) se fijan a 17px más abajo;
     un table td 15px heredaba dentro del span y generaba filas “más pequeñas”.
     ============================================================ */
  body:not(.et-fb) .et_pb_code_inner table td:not([data-col-key="crecimiento"]):not([data-col-key="gagr"]):not([data-col-key="fx"]):not([data-col-key="patrimon"]) {
    padding: 8px 8px !important;
    font-size: 15px !important;
    border-bottom: 1px solid rgba(255,255,255,0.10) !important;
    border-right: none !important;
    text-align: center !important;
    color: #e2e8f0 !important;
  }/* ============================================================
     4. FLECHAS ESTILO CARÁCTER (SVG Nítido)
     Solución para image_6f6478.png y image_6f6fb2.png
     ============================================================ */
  body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row select.sort-filter {
    appearance: none !important;
    -webkit-appearance: none !important;
    border: 1px solid #d1d5db !important;
    border-radius: 6px !important;
    padding: 5px !important;
    color: transparent !important;
    text-indent: -9999px !important;
    cursor: pointer !important;
  }/* ESTADO SELECCIONADO: Mostramos el texto en AZUL */
  body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row select.sort-filter.active-sort {
    color: #2563eb !important;
    text-indent: 0 !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-align: center !important;
  }/* ============================================================
     5. PARCHE PARA QUE EL EDITOR DE DIVI NO SE VEA BLANCO
     ============================================================ */
  body.et-fb .et-fb-settings-options-container label,
  body.et-fb .et-fb-option-label {
      color: #32373c !important;
      visibility: visible !important;
      opacity: 1 !important;
  }html body:not(.et-fb) #page-container .et_pb_code_inner table tbody tr:not(.sp500-row-styled) td:nth-child(2) {
    display: table-cell !important;
    font-size: 17px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    text-align: left !important;
  }html body:not(.et-fb) #page-container .et_pb_code_inner table tbody tr:not(.sp500-row-styled) td:nth-child(2) a,
  html body:not(.et-fb) #page-container .et_pb_code_inner table tbody tr:not(.sp500-row-styled) td:nth-child(2) span,
  html body:not(.et-fb) #page-container .et_pb_code_inner table tbody tr:not(.sp500-row-styled) td:nth-child(2) * {
    font-size: 17px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    text-align: left !important;
  }html body:not(.et-fb) .filters-top input[type="date"] {
    display: none !important;
  }html body:not(.et-fb) .filters-top input[type="date"].show-date {
    display: inline-block !important;
  }/* ============================================================
     CONTROLES SUPERIORES DEL RANKING
     ============================================================ */
  html body:not(.et-fb) .filters-top,
  html body:not(.et-fb) #ranking-root .filters-top,
  html body:not(.et-fb) #page-container .et_pb_code_inner #ranking-root .filters-top,
  html body:not(.et-fb) #ranking-root #pai-interest-selector {
    --pai-control-border-blue: rgba(105, 205, 255, .88);
    --pai-control-border-blue-hover: rgba(150, 230, 255, 1);
    --pai-control-text-blue: #6fd0ff;
    --pai-control-bg-dark: #0b1322;
    --pai-control-glow-blue:
      0 1px 0 rgba(255,255,255,.20) inset,
      0 -1px 0 rgba(30,120,255,.24) inset,
      0 0 0 1px rgba(105,205,255,.13) inset,
      0 0 22px rgba(65,180,255,.54),
      0 0 48px rgba(45,125,255,.22),
      0 13px 32px rgba(0,0,0,.54);
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
    margin: 0 !important;
    padding-left: 45px !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 100vw !important;
    overflow: visible !important;
    box-sizing: border-box !important;
    z-index: 1000 !important;
  }/* Primera etiqueta de la barra unificada: pegada al borde izquierdo del módulo.
     Incluye ruta con .filters-top-fixed-inner (contenedor interno de la barra). */
  html body:not(.et-fb) .filters-top.filters-top-unified > .label-desde:first-child,
  html body:not(.et-fb) .filters-top.filters-top-unified > .filters-top-fixed-inner > .label-desde:first-child,
  html body:not(.et-fb) #ranking-root .filters-top.filters-top-unified > .label-desde:first-child,
  html body:not(.et-fb) #ranking-root .filters-top.filters-top-unified > .filters-top-fixed-inner > .label-desde:first-child,
  html body:not(.et-fb) #page-container .et_pb_code_inner #ranking-root .filters-top.filters-top-unified > .label-desde:first-child,
  html body:not(.et-fb) #page-container .et_pb_code_inner #ranking-root .filters-top.filters-top-unified > .filters-top-fixed-inner > .label-desde:first-child {
    margin-left: 0 !important;
  }/* Etiquetas (labels) de los filtros: separación uniforme con el control
     anterior y con su select. Color blanco para el fondo oscuro. */
  html body:not(.et-fb) #ranking-root .filters-top .label-desde,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top .label-desde,
  html body:not(.et-fb) .filters-top .label-desde,
  html body:not(.et-fb) #ranking-root #pai-interest-selector .label-desde {
    margin-left: 28px !important;
    margin-right: 14px !important;
    color: #ffffff !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
    display: inline-flex !important;
    align-items: center !important;
    align-self: center !important;
    height: 36px !important;
    line-height: 1.25 !important;
    box-sizing: border-box !important;
  }/* Primera label (después del botón ojo): menos margen izquierdo. */
  html body:not(.et-fb) .filters-top .eye-button + .label-desde,
  html body:not(.et-fb) #ranking-root .filters-top .eye-button + .label-desde {
    margin-left: 18px !important;
  }/* === SELECTS OSCUROS (diseño objetivo) ===
     Fondo casi-negro,
  texto blanco,
  borde sutil,
  flecha gris claro a la derecha. */
  html body:not(.et-fb) #ranking-root .filters-top select#periodSelect,
  html body:not(.et-fb) #ranking-root .filters-top select#initialAmount,
  html body:not(.et-fb) #ranking-root .filters-top select#topSelect,
  html body:not(.et-fb) #ranking-root .filters-top select#themeSelect,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top select#periodSelect,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top select#initialAmount,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top select#topSelect,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top select#themeSelect,
  html body:not(.et-fb) .filters-top select#periodSelect,
  html body:not(.et-fb) .filters-top select#initialAmount,
  html body:not(.et-fb) .filters-top select#topSelect,
  html body:not(.et-fb) .filters-top select#themeSelect {
    height: 36px !important;
    min-width: 130px !important;
    padding: 0 32px 0 14px !important;
    border-radius: 12px !important;
    border: 0.5px solid rgba(249, 115, 22, 0.92) !important;
    background:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23cbd5e1'%3E%3Cpath d='M7 10l5 5 5-5H7z'/%3E%3C/svg%3E") no-repeat right 8px center / 16px,
      radial-gradient(circle at 50% 46%, rgba(249, 115, 22, 0.22) 0%, rgba(249, 115, 22, 0.075) 40%, transparent 64%),
      radial-gradient(circle at 50% 30%, rgba(26, 53, 103, 0.34) 0%, rgba(8, 18, 36, 0) 58%),
      linear-gradient(180deg, #0b1524 0%, #04080f 100%) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    box-shadow:
      0 0 0 1px rgba(249, 115, 22, 0.12) inset,
      0 0 10px rgba(249, 115, 22, 0.20),
      0 0 20px rgba(234, 88, 12, 0.12),
      0 10px 22px rgba(0,0,0,0.42) !important;
    outline: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    text-align: center !important;
    text-align-last: center !important;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, background 0.18s ease !important;
  }html body:not(.et-fb) #ranking-root .filters-top select#periodSelect:hover,
  html body:not(.et-fb) #ranking-root .filters-top select#initialAmount:hover,
  html body:not(.et-fb) #ranking-root .filters-top select#topSelect:hover,
  html body:not(.et-fb) #ranking-root .filters-top select#themeSelect:hover,
  html body:not(.et-fb) .filters-top select#periodSelect:hover,
  html body:not(.et-fb) .filters-top select#initialAmount:hover,
  html body:not(.et-fb) .filters-top select#topSelect:hover,
  html body:not(.et-fb) .filters-top select#themeSelect:hover {
    transform: translateY(-1px) !important;
    border-color: #fb923c !important;
    background:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23cbd5e1'%3E%3Cpath d='M7 10l5 5 5-5H7z'/%3E%3C/svg%3E") no-repeat right 8px center / 16px,
      radial-gradient(circle at 50% 46%, rgba(249, 115, 22, 0.30) 0%, rgba(249, 115, 22, 0.10) 42%, transparent 64%),
      radial-gradient(circle at 50% 30%, rgba(32, 68, 128, 0.46) 0%, rgba(8, 18, 36, 0) 58%),
      linear-gradient(180deg, #0f1f38 0%, #060d18 100%) !important;
    box-shadow:
      0 0 0 1px rgba(249, 115, 22, 0.20) inset,
      0 0 14px rgba(249, 115, 22, 0.28),
      0 0 26px rgba(234, 88, 12, 0.16),
      0 12px 26px rgba(0,0,0,0.46) !important;
  }html body:not(.et-fb) .filters-top select#periodSelect option,
  html body:not(.et-fb) .filters-top select#initialAmount option,
  html body:not(.et-fb) .filters-top select#topSelect option,
  html body:not(.et-fb) .filters-top select#themeSelect option,
  html body:not(.et-fb) #ranking-root .filters-top select#periodSelect option,
  html body:not(.et-fb) #ranking-root .filters-top select#initialAmount option,
  html body:not(.et-fb) #ranking-root .filters-top select#topSelect option,
  html body:not(.et-fb) #ranking-root .filters-top select#themeSelect option {
    background: #0b1322 !important;
    color: #ffffff !important;
    text-align: left !important;
    border: 0.5px solid #2a3a55 !important;
    border-width: 0.5px !important;
    outline: none !important;
  }/* Inputs custom (date / amount): mismo estilo oscuro. */
  html body:not(.et-fb) .filters-top input#customDate,
  html body:not(.et-fb) .filters-top input#customAmount {
    height: 36px !important;
    min-width: 130px !important;
    padding: 0 12px !important;
    border: 0.5px solid #2a3a55 !important;
    border-radius: 8px !important;
    background: #0b1322 !important;
    color: #ffffff !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    box-shadow: none !important;
    outline: none !important;
  }html body:not(.et-fb) .filters-top input#customDate::-webkit-calendar-picker-indicator {
    filter: invert(1) opacity(0.7) !important;
  }/* ============================================================
     DROPDOWN CUSTOM (sustituye al <select> nativo en los 3 filtros)
     El <select> real queda oculto y sincronizado por JS para que toda
     la lógica existente (loadData,
  getInitialAmount,
  getStartDate)
     siga funcionando sin cambios. Esto nos da control TOTAL del border
     en estado abierto (que el listbox nativo no permite estilar).
     ============================================================ */
  html body:not(.et-fb) .filters-top .ranking-cs {
    position: relative !important;
    display: inline-flex !important;
    align-self: center !important;
    vertical-align: middle !important;
  }html body:not(.et-fb) .filters-top .ranking-cs select.ranking-cs-native,
  html body:not(.et-fb) .et_pb_code_inner .ranking-cs select.ranking-cs-native,
  html body:not(.et-fb) #ranking-root .ranking-cs select.ranking-cs-native,
  html body:not(.et-fb) #page-container .et_pb_code_inner .ranking-cs select.ranking-cs-native,
  html body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row .ranking-cs select.ranking-cs-native,
  html body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row select.ranking-cs-native,
  html body:not(.et-fb) #ranking-root table tr.excel-filter-row select.ranking-cs-native,
  html body:not(.et-fb) .ranking-cs select.ranking-cs-native,
  html body:not(.et-fb) select.ranking-cs-native {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    z-index: -1 !important;
  }/* Wrappers compactos dentro de la excel-filter-row de la tabla. */
  html body:not(.et-fb) .ranking-cs.ranking-cs-compact {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 0 3px 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }html body:not(.et-fb) .ranking-cs.ranking-cs-compact .ranking-cs-trigger {
    height: 22px !important;
    width: calc(100% - 6px) !important;
    min-width: 0 !important;
    max-width: calc(100% - 6px) !important;
    margin-left: 3px !important;
    margin-right: 3px !important;
    padding: 0 16px 0 6px !important;
    font-size: 10px !important;
    border: 0.5px solid #2a3a55 !important;
    border-radius: 8px !important;
    background: #0b1322 !important;
    color: #ffffff !important;
    box-shadow: none !important;
    outline: none !important;
    filter: none !important;
    clip-path: inset(0 round 8px) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }html body:not(.et-fb) .ranking-cs.ranking-cs-compact .ranking-cs-arrow {
    width: 10px !important;
    height: 10px !important;
    margin-left: 4px !important;
  }/* Sort-filter: en estado normal el trigger muestra solo flechas ↕ centradas. */
  html body:not(.et-fb) .ranking-cs.ranking-cs-sort .ranking-cs-trigger {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23cbd5e1'%3E%3Cpath d='M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: 12px !important;
    padding: 0 !important;
  }html body:not(.et-fb) .ranking-cs.ranking-cs-sort .ranking-cs-label,
  html body:not(.et-fb) .ranking-cs.ranking-cs-sort .ranking-cs-arrow {
    display: none !important;
  }/* Estado active-sort (el bundle lo aplica cuando hay orden activo): muestra
     el texto en azul y oculta las flechas. */
  html body:not(.et-fb) .ranking-cs.ranking-cs-sort.active-sort .ranking-cs-trigger {
    background-image: none !important;
    color: #60a5fa !important;
  }html body:not(.et-fb) .ranking-cs.ranking-cs-sort.active-sort .ranking-cs-label {
    display: block !important;
    color: #60a5fa !important;
    font-weight: 800 !important;
    text-align: center !important;
  }html body:not(.et-fb) .filters-top .ranking-cs-trigger {
    position: relative !important;
    overflow: visible !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
    min-width: 130px !important;
    padding: 0 14px !important;
    border-radius: 12px !important;
    border: 1px solid var(--pai-control-border-blue) !important;
    background:
      linear-gradient(180deg, rgba(255,255,255,.11) 0%, rgba(255,255,255,.04) 24%, rgba(255,255,255,0) 48%),
      radial-gradient(circle at 24% 0%, rgba(135,215,255,.18) 0%, rgba(70,150,255,.08) 34%, transparent 60%),
      linear-gradient(180deg, rgba(15,34,72,.98), rgba(4,12,30,.98)) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    outline: none !important;
    box-shadow: var(--pai-control-glow-blue) !important;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, background 0.18s ease !important;
  }html body:not(.et-fb) #ranking-root .filters-top .ranking-cs.pai-initial-amount-native-monthly,
  html body:not(.et-fb) #page-container #ranking-root .filters-top .ranking-cs.pai-initial-amount-native-monthly,
  html body:not(.et-fb) #ranking-root .filters-top .filters-top-fixed-inner .ranking-cs.pai-initial-amount-native-monthly {
    min-width: 186px !important;
  }html body:not(.et-fb) #ranking-root .filters-top .ranking-cs.pai-initial-amount-native-monthly .ranking-cs-trigger,
  html body:not(.et-fb) #page-container #ranking-root .filters-top .ranking-cs.pai-initial-amount-native-monthly .ranking-cs-trigger,
  html body:not(.et-fb) #ranking-root .filters-top .filters-top-fixed-inner .ranking-cs.pai-initial-amount-native-monthly .ranking-cs-trigger {
    min-width: 186px !important;
  }html body:not(.et-fb) .ranking-cs-panel.pai-initial-amount-native-monthly-panel {
    min-width: 206px !important;
  }html body:not(.et-fb) #ranking-root .filters-top .ranking-cs-trigger::before,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top .ranking-cs-trigger::before,
  html body:not(.et-fb) .filters-top .ranking-cs-trigger::before {
    content: none !important;
    display: none !important;
  }html body:not(.et-fb) #ranking-root .filters-top .ranking-cs-trigger::after,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top .ranking-cs-trigger::after,
  html body:not(.et-fb) .filters-top .ranking-cs-trigger::after {
    content: none !important;
    display: none !important;
  }html body:not(.et-fb) .filters-top .ranking-cs-trigger .ranking-cs-label,
  html body:not(.et-fb) .filters-top .ranking-cs-trigger .ranking-cs-arrow {
    position: relative !important;
    z-index: 3 !important;
  }html body:not(.et-fb) .filters-top .ranking-cs-trigger:hover {
    transform: translateY(-1px) !important;
    border-color: var(--pai-control-border-blue-hover) !important;
    background:
      linear-gradient(180deg, rgba(255,255,255,.13) 0%, rgba(255,255,255,.05) 24%, rgba(255,255,255,0) 48%),
      radial-gradient(circle at 24% 0%, rgba(135,215,255,.24) 0%, rgba(70,150,255,.11) 34%, transparent 60%),
      linear-gradient(180deg, rgba(18,42,88,.98), rgba(5,15,34,.98)) !important;
    box-shadow: var(--pai-control-glow-blue) !important;
  }html body:not(.et-fb) .filters-top .ranking-cs[data-open="true"] .ranking-cs-trigger {
    border-color: var(--pai-control-border-blue-hover) !important;
    box-shadow: var(--pai-control-glow-blue) !important;
  }/* Cuando el dropdown está abierto,
  su wrapper se eleva sobre la tabla
     (los inputs min/máx de la excel-filter-row tienen su propio stacking). */
  html body:not(.et-fb) .filters-top .ranking-cs[data-open="true"] {
    z-index: 999999 !important;
  }html body:not(.et-fb) .filters-top .ranking-cs-label,
  html body:not(.et-fb) .ranking-cs-label {
    flex: 1 !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    /* Compensa el ancho de la flecha (14px + 8px margen) para que el texto
       quede centrado VISUALMENTE en el trigger, no a la izquierda de la flecha. */
    padding-left: 22px !important;
  }html body:not(.et-fb) .ranking-cs.ranking-cs-compact .ranking-cs-label {
    /* Triggers compactos: flecha 10px + 4px margen = 14px de compensación. */
    padding-left: 14px !important;
  }html body:not(.et-fb) .filters-top .ranking-cs-arrow {
    width: 14px !important;
    height: 14px !important;
    margin-left: 8px !important;
    flex-shrink: 0 !important;
    fill: #cbd5e1 !important;
    opacity: 0.88 !important;
    transition: transform 0.18s ease !important;
  }html body:not(.et-fb) .filters-top .ranking-cs[data-open="true"] .ranking-cs-arrow {
    transform: rotate(180deg) !important;
  }/* Panel desplegado: position: fixed para escapar de stacking contexts
     creados por Divi (transform/sticky en ancestros) que tapan el panel
     con la tabla. JS calcula top/left/width desde el rect del trigger. */
  html body:not(.et-fb) .ranking-cs-panel,
  html body:not(.et-fb) .filters-top .ranking-cs-panel {
    position: fixed !important;
    background: #0b1322 !important;
    border: 1px solid var(--pai-control-border-blue) !important;
    border-color: var(--pai-control-border-blue) !important;
    border-radius: 12px !important;
    padding: 4px 0 !important;
    margin: 0 !important;
    list-style: none !important;
    z-index: 2147483647 !important;
    display: none !important;
    box-shadow: var(--pai-window-shadow) !important;
    max-height: none !important;
    overflow: visible !important;
    pointer-events: auto !important;
  }html body:not(.et-fb) .ranking-cs[data-open="true"] .ranking-cs-panel,
  html body:not(.et-fb) .filters-top .ranking-cs[data-open="true"] .ranking-cs-panel,
  html body:not(.et-fb) .ranking-cs-panel[data-open="true"] {
    display: block !important;
  }html body:not(.et-fb) .ranking-cs-panel[data-open="true"],
  html body:not(.et-fb) .ranking-cs[data-open="true"] .ranking-cs-panel,
  html body:not(.et-fb) .filters-top .ranking-cs[data-open="true"] .ranking-cs-panel {
    border: 1px solid var(--pai-control-border-blue) !important;
    border-color: var(--pai-control-border-blue) !important;
    box-shadow: var(--pai-window-shadow) !important;
  }html body:not(.et-fb) .ranking-cs-option,
  html body:not(.et-fb) .filters-top .ranking-cs-option {
    display: block !important;
    padding: 7px 13px !important;
    color: #ffffff !important;
    font-size: var(--pai-main-menu-font-size, 13px) !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    text-align: left !important;
    border: 1px solid transparent !important;
    background: transparent !important;
    white-space: nowrap !important;
    user-select: none !important;
    -webkit-user-select: none !important;
  }
  html body:not(.et-fb) .ranking-cs-panel:is([data-target="initialAmount"], [data-target="periodSelect"], [data-target="topSelect"]) {
    --pai-main-menu-font-size: var(--pai-main-control-font-size);
  }
  html body:not(.et-fb) .ranking-cs-panel:is([data-target="initialAmount"], [data-target="periodSelect"], [data-target="topSelect"]) .ranking-cs-option {
    font-family: var(--pai-main-control-font-family) !important;
  }
  html body:not(.et-fb) .ranking-cs-option:hover,
  html body:not(.et-fb) .ranking-cs-option[data-active="true"],
  html body:not(.et-fb) .filters-top .ranking-cs-option:hover,
  html body:not(.et-fb) .filters-top .ranking-cs-option[data-active="true"] {
    /* Hover: fondo NEGRO (no cambia), texto NARANJA. */
    background: #0b1322 !important;
    color: #6fd0ff !important;
    -webkit-text-fill-color: #6fd0ff !important;
  }html body:not(.et-fb) .ranking-cs-option[data-selected="true"],
  html body:not(.et-fb) .filters-top .ranking-cs-option[data-selected="true"] {
    /* Seleccionado: fondo NEGRO, texto NARANJA. */
    background: #0b1322 !important;
    color: #6fd0ff !important;
    -webkit-text-fill-color: #6fd0ff !important;
  }html body:not(.et-fb) .ranking-cs-option[data-selected="true"]:hover,
  html body:not(.et-fb) .filters-top .ranking-cs-option[data-selected="true"]:hover,
  html body:not(.et-fb) .ranking-cs-option[data-selected="true"][data-active="true"],
  html body:not(.et-fb) .filters-top .ranking-cs-option[data-selected="true"][data-active="true"] {
    /* Seleccionado + hover: idéntico (fondo negro + texto naranja). */
    background: #0b1322 !important;
    color: #6fd0ff !important;
    -webkit-text-fill-color: #6fd0ff !important;
  }
  html body:not(.et-fb) .ranking-cs-option[data-pai-top1y-ai-icon="1"],
  html body:not(.et-fb) .filters-top .ranking-cs-option[data-pai-top1y-ai-icon="1"],
  .ranking-cs-option[data-pai-top1y-ai-icon="1"] {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 5px !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
    white-space: nowrap !important;
    overflow: visible !important;
  }

  html body:not(.et-fb) .ranking-cs-option[data-pai-top1y-ai-icon="1"] .pai-top1y-ai-text,
  html body:not(.et-fb) .filters-top .ranking-cs-option[data-pai-top1y-ai-icon="1"] .pai-top1y-ai-text,
  html body:not(.et-fb) .ranking-cs-label[data-pai-top1y-ai-icon="1"] .pai-top1y-ai-text,
  html body:not(.et-fb) .filters-top .ranking-cs-label[data-pai-top1y-ai-icon="1"] .pai-top1y-ai-text,
  .ranking-cs-option[data-pai-top1y-ai-icon="1"] .pai-top1y-ai-text,
  .ranking-cs-label[data-pai-top1y-ai-icon="1"] .pai-top1y-ai-text {
    display: inline-flex !important;
    align-items: center !important;
    white-space: nowrap !important;
    color: inherit !important;
    -webkit-text-fill-color: inherit !important;
    font-size: inherit !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    transform: translate(0px, 0px) !important;
  }

  html body:not(.et-fb) .ranking-cs-option[data-pai-top1y-ai-icon="1"] .pai-top1y-ai-icon,
  html body:not(.et-fb) .filters-top .ranking-cs-option[data-pai-top1y-ai-icon="1"] .pai-top1y-ai-icon,
  html body:not(.et-fb) .ranking-cs-label[data-pai-top1y-ai-icon="1"] .pai-top1y-ai-icon,
  html body:not(.et-fb) .filters-top .ranking-cs-label[data-pai-top1y-ai-icon="1"] .pai-top1y-ai-icon,
  .ranking-cs-option[data-pai-top1y-ai-icon="1"] .pai-top1y-ai-icon,
  .ranking-cs-label[data-pai-top1y-ai-icon="1"] .pai-top1y-ai-icon {
    width: 25px !important;
    height: 25px !important;
    min-width: 25px !important;
    max-width: 25px !important;
    object-fit: contain !important;
    display: inline-block !important;
    transform: translate(8px, 0px) !important;
    filter: drop-shadow(0 1px 4px rgba(0,0,0,.55)) !important;
    pointer-events: none !important;
    flex: 0 0 auto !important;
  }

  html body:not(.et-fb) .ranking-cs-label[data-pai-top1y-ai-icon="1"],
  html body:not(.et-fb) .filters-top .ranking-cs-label[data-pai-top1y-ai-icon="1"],
  .ranking-cs-label[data-pai-top1y-ai-icon="1"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    white-space: nowrap !important;
    overflow: visible !important;
  }
  /* Texto del TRIGGER (la "etiqueta" del botón): BLANCO siempre.
     Solo el .ranking-cs-option seleccionado en el panel desplegado se
     muestra en naranja (regla más arriba). */
  html body:not(.et-fb) .filters-top .ranking-cs-trigger .ranking-cs-label,
  html body:not(.et-fb) #ranking-root .filters-top .ranking-cs-trigger .ranking-cs-label,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top .ranking-cs-trigger .ranking-cs-label {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-weight: 600 !important;
  }.pai-monthly-partial-badge {
    display: inline-block !important;
    margin-left: 6px !important;
    padding: 1px 5px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(249,115,22,.65) !important;
    background: rgba(249,115,22,.12) !important;
    color: #fb923c !important;
    -webkit-text-fill-color: #fb923c !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    vertical-align: middle !important;
  }/* Compatibilidad: las viejas barras divididas (.filters-top-amount,
  .filters-top-top)
     ya no se usan tras unificar todo en .filters-top-unified,
  pero por seguridad
     mantenemos el override por si alguna versión cacheada todavía las renderiza. */
  html body:not(.et-fb) .filters-top.filters-top-amount,
  html body:not(.et-fb) .filters-top.filters-top-top {
    margin: 8px 0 0 0 !important;
  }/* ============================================================
     BOTÓN OJO — Maqueta: casi negro,
  brillo naranja suave centrado bajo el icono,
  borde naranja 0.5px,
  icono blanco. Márgenes vs. select Tabla y vs. la derecha.
     ============================================================ */
  
  html body:not(.et-fb) .filters-top button.eye-button,
  html body:not(.et-fb) .filters-top button.eye-button:link,
  html body:not(.et-fb) .filters-top button.eye-button:visited,
  html body:not(.et-fb) #ranking-root .filters-top button.eye-button,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top button.eye-button {
    position: relative !important;
    width: 70px !important;
    min-width: 70px !important;
    max-width: 70px !important;
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
    padding: 0 !important;
    margin: 0 28px 0 18px !important;
  
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  
    border-radius: 12px !important;
    border: 0.5px solid rgba(249, 115, 22, 0.92) !important;
  
    background:
      radial-gradient(circle at 50% 46%, rgba(249, 115, 22, 0.28) 0%, rgba(249, 115, 22, 0.09) 40%, transparent 64%),
      radial-gradient(circle at 50% 30%, rgba(26, 53, 103, 0.38) 0%, rgba(8, 18, 36, 0) 58%),
      linear-gradient(180deg, #0b1524 0%, #04080f 100%) !important;
  
    box-shadow:
      0 0 0 1px rgba(249, 115, 22, 0.12) inset,
      0 0 10px rgba(249, 115, 22, 0.22),
      0 0 20px rgba(234, 88, 12, 0.14),
      0 10px 22px rgba(0,0,0,0.45) !important;
  
    overflow: visible !important;
    cursor: pointer !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    transition:
      transform 0.18s ease,
      box-shadow 0.18s ease,
      border-color 0.18s ease,
      background 0.18s ease !important;
  }/* halo exterior (refuerza el resplandor naranja sin teñir todo el botón) */
  html body:not(.et-fb) .filters-top button.eye-button::before,
  html body:not(.et-fb) #ranking-root .filters-top button.eye-button::before,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top button.eye-button::before {
    content: "" !important;
    position: absolute !important;
    inset: -3px !important;
    border-radius: 15px !important;
    background: radial-gradient(circle, rgba(249, 115, 22, 0.2) 0%, rgba(249, 115, 22, 0.07) 44%, rgba(249, 115, 22, 0) 72%) !important;
    z-index: 0 !important;
    pointer-events: none !important;
  }/* brillo interior */
  html body:not(.et-fb) .filters-top button.eye-button::after,
  html body:not(.et-fb) #ranking-root .filters-top button.eye-button::after,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top button.eye-button::after {
    content: "" !important;
    position: absolute !important;
    inset: 1px !important;
    border-radius: 11px !important;
    background: linear-gradient(180deg, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.015) 32%, rgba(255,255,255,0) 60%) !important;
    z-index: 1 !important;
    pointer-events: none !important;
  }html body:not(.et-fb) .filters-top button.eye-button:hover,
  html body:not(.et-fb) #ranking-root .filters-top button.eye-button:hover,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top button.eye-button:hover {
    transform: translateY(-1px) !important;
    border-color: #fb923c !important;
    background:
      radial-gradient(circle at 50% 46%, rgba(249, 115, 22, 0.34) 0%, rgba(249, 115, 22, 0.11) 42%, transparent 64%),
      radial-gradient(circle at 50% 30%, rgba(32, 68, 128, 0.48) 0%, rgba(8, 18, 36, 0) 58%),
      linear-gradient(180deg, #0f1f38 0%, #060d18 100%) !important;
    box-shadow:
      0 0 0 1px rgba(249, 115, 22, 0.2) inset,
      0 0 14px rgba(249, 115, 22, 0.3),
      0 0 26px rgba(234, 88, 12, 0.18),
      0 12px 26px rgba(0,0,0,0.46) !important;
  }html body:not(.et-fb) .filters-top button.eye-button:active,
  html body:not(.et-fb) #ranking-root .filters-top button.eye-button:active,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top button.eye-button:active {
    transform: scale(0.985) !important;
  }/* contenido por encima de los pseudo-elementos */
  html body:not(.et-fb) .filters-top button.eye-button > *,
  html body:not(.et-fb) #ranking-root .filters-top button.eye-button > *,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top button.eye-button > * {
    position: relative !important;
    z-index: 2 !important;
  }html body:not(.et-fb) .filters-top button.eye-button svg,
  html body:not(.et-fb) #ranking-root .filters-top button.eye-button svg,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top button.eye-button svg {
    width: 22px !important;
    height: 22px !important;
    display: block !important;
    filter: drop-shadow(0 0 2px rgba(255,255,255,0.08)) !important;
  }html body:not(.et-fb) .filters-top button.eye-button svg path,
  html body:not(.et-fb) .filters-top button.eye-button svg circle,
  html body:not(.et-fb) .filters-top button.eye-button svg ellipse,
  html body:not(.et-fb) #ranking-root .filters-top button.eye-button svg path,
  html body:not(.et-fb) #ranking-root .filters-top button.eye-button svg circle,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top button.eye-button svg path,
  html body:not(.et-fb) #page-container .et_pb_code_inner .filters-top button.eye-button svg circle {
    fill: none !important;
    stroke: #f8fbff !important;
    stroke-width: 2.15 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
  }/* loading */
  html body:not(.et-fb) .filters-top button.eye-button.ranking-loading,
  html body:not(.et-fb) .filters-top button.ranking-loading.eye-button {
    border-color: #f59e0b !important;
    background:
      radial-gradient(circle at 50% 35%, rgba(173, 101, 16, 0.48) 0%, rgba(173, 101, 16, 0.10) 38%, rgba(49,28,4,0) 70%),
      linear-gradient(180deg, #4e2e07 0%, #311c04 100%) !important;
    box-shadow:
      0 0 0 1px rgba(245,158,11,0.22) inset,
      0 0 14px rgba(245,158,11,0.28),
      0 0 24px rgba(245,158,11,0.18),
      0 10px 22px rgba(0,0,0,0.42) !important;
  }/* BARRA DE ESTADO (hijo directo o dentro de .filters-top-fixed-inner) */
  html body:not(.et-fb) .filters-top > #ranking-status-bar,
  html body:not(.et-fb) .filters-top > .filters-top-fixed-inner > #ranking-status-bar {
    display: none !important;
    position: absolute !important;
    left: 50% !important;
    top: calc(100% + 8px) !important;
    transform: translateX(-50%) !important;
    width: 420px !important;
    max-width: 80vw !important;
    margin: 0 !important;
    z-index: 99999 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
  }html body:not(.et-fb) .filters-top > #ranking-status-bar.active,
  html body:not(.et-fb) .filters-top > .filters-top-fixed-inner > #ranking-status-bar.active {
    display: block !important;
  }html body:not(.et-fb) .filters-top > #ranking-status-bar .ranking-status-inner,
  html body:not(.et-fb) .filters-top > .filters-top-fixed-inner > #ranking-status-bar .ranking-status-inner {
    display: block !important;
    width: 420px !important;
    max-width: 80vw !important;
  }html body:not(.et-fb) .filters-top > #ranking-status-bar .ranking-progress,
  html body:not(.et-fb) .filters-top > .filters-top-fixed-inner > #ranking-status-bar .ranking-progress {
    display: block !important;
    width: 420px !important;
    max-width: 80vw !important;
    height: 1px !important;
    margin: 0 auto !important;
    background: #dbe3ef !important;
    border-radius: 999px !important;
    overflow: hidden !important;
  }html body:not(.et-fb) .filters-top > #ranking-status-bar .ranking-progress-fill,
  html body:not(.et-fb) .filters-top > .filters-top-fixed-inner > #ranking-status-bar .ranking-progress-fill {
    display: block !important;
    width: 40% !important;
    min-width: 120px !important;
    height: 100% !important;
    background: #2563eb !important;
    border-radius: 999px !important;
    animation: rankingLoading 1.1s infinite ease-in-out !important;
  }html body:not(.et-fb) #ranking-status-text {
    display: none !important;
  }
  @keyframes rankingLoading {0% { transform: translateX(-120%); }100% { transform: translateX(280%); }
  }html body:not(.et-fb) .filters-top .label-desde,
  html body:not(.et-fb) #pai-interest-selector .label-desde {
    display: inline-flex !important;
    align-items: center !important;
    align-self: center !important;
    height: 36px !important;
    margin: 0 6px 0 0 !important;
    padding: 0 !important;
    font-size: var(--pai-main-control-font-size) !important;
    font-weight: 600 !important;
    color: #071122 !important;
    line-height: 1.25 !important;
    font-family: var(--pai-main-control-font-family) !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
  }/* --- FASE 3 (tipografía): bloque "Bloqueo máxima especificidad #ranking-root + #table (cols 5-8)"
     — tipografía por data-col-key; geometría tbody → RANKING_COLS + cellStyle. --- */
  html body:not(.et-fb) #ranking-root table#table {
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
  }/* Métricas por data-col-key (gana si hay columnas ocultas / reorder) */
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="crecimiento"],
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="gagr"],
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="fx"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="crecimiento"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="gagr"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="fx"],
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="crecimiento"],
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="gagr"],
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="fx"] {
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    transform: none !important;
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
  }html body:not(.et-fb) #ranking-root table#table td[data-col-key="patrimon"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="patrimon"],
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="patrimon"] {
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    transform: none !important;
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
  }html body:not(.et-fb) #ranking-root table#table td[data-col-key="crecimiento"] *,
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="gagr"] *,
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="fx"] *,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="crecimiento"] *,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="gagr"] *,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="fx"] *,
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="crecimiento"] *,
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="gagr"] *,
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="fx"] * {
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    text-align: right !important;
  }html body:not(.et-fb) #ranking-root table#table td[data-col-key="patrimon"] *,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="patrimon"] *,
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="patrimon"] * {
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    text-align: right !important;
  }/* Una sola pila y tamaño en todas las celdas métricas (td.ranking-metric-col) — tipografía;
     geometría thead → renderLabelCell; tbody → RANKING_COLS + cellStyle. */
  html body:not(.et-fb) #ranking-root table#table td.ranking-metric-col:not([data-col-key="patrimon"]),
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td.ranking-metric-col:not([data-col-key="patrimon"]),
  body:not(.et-fb) .et_pb_code_inner table#table td.ranking-metric-col:not([data-col-key="patrimon"]) {
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    font-style: normal !important;
    line-height: 1.25 !important;
    font-synthesis: none !important;
  }html body:not(.et-fb) #ranking-root table#table td.ranking-metric-col[data-col-key="patrimon"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td.ranking-metric-col[data-col-key="patrimon"],
  body:not(.et-fb) .et_pb_code_inner table#table td.ranking-metric-col[data-col-key="patrimon"] {
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    font-style: normal !important;
    line-height: 1.25 !important;
    font-synthesis: none !important;
  }html body:not(.et-fb) #ranking-root table#table td.ranking-metric-col:not([data-col-key="patrimon"]) *,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td.ranking-metric-col:not([data-col-key="patrimon"]) *,
  body:not(.et-fb) .et_pb_code_inner table#table td.ranking-metric-col:not([data-col-key="patrimon"]) *,
  html body:not(.et-fb) #ranking-root table#table td.ranking-metric-col:not([data-col-key="patrimon"]) *::before,
  html body:not(.et-fb) #ranking-root table#table td.ranking-metric-col:not([data-col-key="patrimon"]) *::after {
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
  }html body:not(.et-fb) #ranking-root table#table td.ranking-metric-col[data-col-key="patrimon"] *,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td.ranking-metric-col[data-col-key="patrimon"] *,
  body:not(.et-fb) .et_pb_code_inner table#table td.ranking-metric-col[data-col-key="patrimon"] *,
  html body:not(.et-fb) #ranking-root table#table td.ranking-metric-col[data-col-key="patrimon"] *::before,
  html body:not(.et-fb) #ranking-root table#table td.ranking-metric-col[data-col-key="patrimon"] *::after {
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
  }html body:not(.et-fb) #ranking-root table#table td.ranking-metric-col:not([data-col-key="patrimon"]) b,
  html body:not(.et-fb) #ranking-root table#table td.ranking-metric-col:not([data-col-key="patrimon"]) strong,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td.ranking-metric-col:not([data-col-key="patrimon"]) b,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td.ranking-metric-col:not([data-col-key="patrimon"]) strong,
  body:not(.et-fb) .et_pb_code_inner table#table td.ranking-metric-col:not([data-col-key="patrimon"]) b,
  body:not(.et-fb) .et_pb_code_inner table#table td.ranking-metric-col:not([data-col-key="patrimon"]) strong {
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 15px !important;
    font-weight: 800 !important;
  }html body:not(.et-fb) #ranking-root table#table td.ranking-metric-col[data-col-key="patrimon"] b,
  html body:not(.et-fb) #ranking-root table#table td.ranking-metric-col[data-col-key="patrimon"] strong,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td.ranking-metric-col[data-col-key="patrimon"] b,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td.ranking-metric-col[data-col-key="patrimon"] strong,
  body:not(.et-fb) .et_pb_code_inner table#table td.ranking-metric-col[data-col-key="patrimon"] b,
  body:not(.et-fb) .et_pb_code_inner table#table td.ranking-metric-col[data-col-key="patrimon"] strong {
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
  }/* Span .ranking-metric-inline en las 4 métricas (por data-col-key) */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="crecimiento"] .ranking-metric-inline,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="gagr"] .ranking-metric-inline,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="fx"] .ranking-metric-inline,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="patrimon"] .ranking-metric-inline,
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="crecimiento"] .ranking-metric-inline,
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="gagr"] .ranking-metric-inline,
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="fx"] .ranking-metric-inline,
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="patrimon"] .ranking-metric-inline,
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="crecimiento"] .ranking-metric-inline,
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="gagr"] .ranking-metric-inline,
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="fx"] .ranking-metric-inline,
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="patrimon"] .ranking-metric-inline {
    display: inline !important;
    white-space: nowrap !important;
  }/* FASE 2: geometría `anos en sp500` → RANKING_COLS + cellStyle.
     Bloque legacy `.ranking-years-sp500` (77px) eliminado. */
  
  html body:not(.et-fb) #page-container table tr.excel-filter-row th.ranking-th-chart-filter-column-ticker,
  html body:not(.et-fb) #page-container .et_pb_code_inner table tr.excel-filter-row th.ranking-th-chart-filter-column-ticker,
  body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row th.ranking-th-chart-filter-column-ticker {
    vertical-align: bottom !important;
    padding-top: 4px !important;
    padding-bottom: 10px !important;
    overflow: visible !important;
  }html body:not(.et-fb) #page-container table tr.excel-filter-row th.ranking-th-chart-filter-column-ticker .ranking-chart-filter-slot-ticker,
  html body:not(.et-fb) #page-container .et_pb_code_inner table tr.excel-filter-row th.ranking-th-chart-filter-column-ticker .ranking-chart-filter-slot-ticker,
  body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row th.ranking-th-chart-filter-column-ticker .ranking-chart-filter-slot-ticker {
    display: flex !important;
    justify-content: center !important;
    align-items: flex-end !important;
    width: 100% !important;
    margin: 0 0 3px 0 !important;
    overflow: visible !important;
    transform: translateY(5px) !important;
  }html body:not(.et-fb) #page-container table tr.excel-filter-row th.ranking-th-chart-filter-column-ticker .text-filter,
  html body:not(.et-fb) #page-container .et_pb_code_inner table tr.excel-filter-row th.ranking-th-chart-filter-column-ticker .text-filter,
  body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row th.ranking-th-chart-filter-column-ticker .text-filter {
    margin-top: 2px !important;
  }/* Sólo queremos el botón de gráficos en la columna Ticker. Oculta cualquier botón
     o slot duplicado en otras columnas (p.ej. "10 AÑOS") y su resaltado naranja. */
  html body:not(.et-fb) #ranking-root table#table .ranking-chart-header-btn,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table .ranking-chart-header-btn,
  body:not(.et-fb) .et_pb_code_inner table#table .ranking-chart-header-btn {
    display: none !important;
  }html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row th.ranking-th-chart-filter-column-ticker .ranking-chart-header-btn,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row th.ranking-th-chart-filter-column-ticker .ranking-chart-header-btn,
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row th.ranking-th-chart-filter-column-ticker .ranking-chart-header-btn {
    display: inline-flex !important;
  }/* La clase ranking-th-chart-slot resaltaba la columna 10 AÑOS en naranja: la deshabilitamos. */
  html body:not(.et-fb) #ranking-root table#table th.ranking-th-chart-slot,
  html body:not(.et-fb) #ranking-root table#table td.ranking-th-chart-slot,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table th.ranking-th-chart-slot,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td.ranking-th-chart-slot,
  body:not(.et-fb) .et_pb_code_inner table#table th.ranking-th-chart-slot,
  body:not(.et-fb) .et_pb_code_inner table#table td.ranking-th-chart-slot {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    border: none !important;
  }/* FASE 2: columnas años (1/2/3/5/10/15/20) sin width fijo en RANKING_COLS
     → cellStyle. Eliminado `.year-col-fixed` (150px) y FORZADO ABSOLUTO. */
  
  
  
  
  /* ============================================================
     Hover fila completa: overlay blanco translúcido para no tapar VANTA.
     ============================================================ */
  /* REGLAS LEGACY ELIMINADAS:
     - Antes había aquí dos reglas duplicadas dark con `background-color:
       rgba(255,255,255,0.08)`. Las dejaba el código viejo, pero la regla
       real de hover dark ya está en el bloque ~4170 (box-shadow inset).
       Eliminar evita confusión y reduce CSS innecesario. *//* ============================================================
     Hover columna: ahora gestionado por overlay en HTML.html (versión K+).
     Bloque antiguo eliminado: causaba repaint masivo de 503 celdas en cada cambio
     de atributo. El HTML inline aplica el azul vía un único <div> overlay.
     ============================================================ */
  
  /* ============================================================
     17. NUMERIC METRICS: tabular-nums obligatorio (métricas por data-col-key).
     Forzamos que TODOS los dígitos midan exactamente lo mismo. Sin esto,
  en
     Inter/Arial proporcional el "1" y el "5" son más estrechos que el "6" y "0",
  y la cifra "2.512 %" parece en pantalla más pequeña que "2.067 %" aunque
     font-size sea 17px en ambos casos. Aplica también a la fila SP500.
     ============================================================ */
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="crecimiento"],
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="gagr"],
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="fx"],
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="patrimon"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="crecimiento"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="gagr"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="fx"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="patrimon"],
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="crecimiento"],
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="gagr"],
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="fx"],
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="patrimon"],
  html body:not(.et-fb) #ranking-root table#table td.ranking-metric-col,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td.ranking-metric-col,
  body:not(.et-fb) .et_pb_code_inner table#table td.ranking-metric-col,
  /* Cualquier descendiente (span.ranking-metric-inline,
  b,
  strong,
  *) */
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="crecimiento"] *,
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="gagr"] *,
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="fx"] *,
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="patrimon"] *,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="crecimiento"] *,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="gagr"] *,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="fx"] *,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="patrimon"] *,
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="crecimiento"] *,
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="gagr"] *,
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="fx"] *,
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="patrimon"] *,
  html body:not(.et-fb) #ranking-root table#table td.ranking-metric-col *,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td.ranking-metric-col *,
  body:not(.et-fb) .et_pb_code_inner table#table td.ranking-metric-col * {
    font-variant-numeric: tabular-nums lining-nums !important;
    font-feature-settings: "tnum" 1, "lnum" 1 !important;
    letter-spacing: 0 !important;
    font-stretch: 100% !important;
    word-spacing: 0 !important;
    text-rendering: geometricPrecision !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
  }/* ============================================================
     18. INPUTS Y SELECTS DE LA EXCEL-FILTER-ROW
     Mismo estilo dark-fintech que los selects custom de la barra
     superior: fondo #0b1322,
  texto blanco,
  borde 0.5px #2a3a55,
  redondeado 8px. Mantiene height 22px y font-size 10px.
     ============================================================ */
  html body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row input:not([type="checkbox"]):not(.ranking-include-cb):not(.ranking-col-header-vis-cb),
  html body:not(.et-fb) #ranking-root table tr.excel-filter-row input:not([type="checkbox"]):not(.ranking-include-cb):not(.ranking-col-header-vis-cb),
  html body:not(.et-fb) #page-container .et_pb_code_inner table tr.excel-filter-row input:not([type="checkbox"]):not(.ranking-include-cb):not(.ranking-col-header-vis-cb) {
    background: #0b1322 !important;
    background-color: #0b1322 !important;
    color: #ffffff !important;
    border: 0.5px solid #2a3a55 !important;
    border-radius: 8px !important;
    height: 22px !important;
    font-size: 10px !important;
    padding: 2px 6px !important;
    box-shadow: none !important;
    outline: none !important;
    -webkit-text-fill-color: #ffffff !important;
    width: calc(100% - 6px) !important;
    min-width: 0 !important;
    max-width: calc(100% - 6px) !important;
    margin-left: 3px !important;
    margin-right: 3px !important;
    overflow: hidden !important;
    clip-path: inset(0 round 8px) !important;
    filter: none !important;
    /* User-mandated: text + placeholder centrados horizontalmente. */
    text-align: center !important;
  }
  /* V242: la geometría nativa anterior es la referencia de medición.
     Solo los controles preparados por rankingApplyFilterTypography activan la fuente. */
  html body:not(.et-fb) #ranking-root#ranking-root#ranking-root .excel-filter-row [data-pai-filter-typography] {
    font-family: "PAI Rajdhani Filtros", Rajdhani, sans-serif !important;
    font-size: 11.5px !important;
    font-weight: 500 !important;
  }
  html body:not(.et-fb) #ranking-root#ranking-root#ranking-root .excel-filter-row .ranking-favorite-list-label[data-pai-filter-typography] {
    font-weight: 600 !important;
  }
  html body:not(.et-fb) #ranking-root#ranking-root#ranking-root .excel-filter-row :is(.pai-projection-mode-select,.pai-opportunity-model-select) option[data-pai-filter-typography] {
    font-size: 12.65px !important;
  }
  html body:not(.et-fb) .ranking-cs-panel[data-pai-filter-menu="1"] .ranking-cs-option {
    font-family: "PAI Rajdhani Filtros", Rajdhani, sans-serif !important;
    font-size: 14.95px !important;
    font-weight: 500 !important;
  }
  html body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row input::placeholder,
  html body:not(.et-fb) #ranking-root table tr.excel-filter-row input::placeholder,
  html body:not(.et-fb) #page-container .et_pb_code_inner table tr.excel-filter-row input::placeholder {
    color: #64748b !important;
    opacity: 1 !important;
    text-align: center !important;
  }html body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row input:focus,
  html body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row select:focus {
    border-color: #3b4d6e !important;
    background: #11192b !important;
    background-color: #11192b !important;
    outline: none !important;
  }html body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row select,
  html body:not(.et-fb) #ranking-root table tr.excel-filter-row select,
  html body:not(.et-fb) #page-container .et_pb_code_inner table tr.excel-filter-row select {
    background: #0b1322 !important;
    background-color: #0b1322 !important;
    color: #ffffff !important;
    border: 0.5px solid #2a3a55 !important;
    border-radius: 8px !important;
    height: 22px !important;
    font-size: 10px !important;
    padding: 0 18px 0 6px !important;
    box-shadow: none !important;
    outline: none !important;
    cursor: pointer !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    width: calc(100% - 6px) !important;
    min-width: 0 !important;
    max-width: calc(100% - 6px) !important;
    margin-left: 3px !important;
    margin-right: 3px !important;
    overflow: hidden !important;
    clip-path: inset(0 round 8px) !important;
    filter: none !important;
  }html body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row select option {
    background: #0b1322 !important;
    color: #ffffff !important;
  }/* sort-filter — PORT VERBATIM v1 (línea 18910-18948).
     height 28px (más alto que text/min/max 22px), margin-bottom 4px,
     color transparent + text-indent -9999px (oculta el texto, solo SVG
     chevron centrado). Active-sort: muestra texto azul y oculta SVG. */
  html body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row select.sort-filter,
  html body:not(.et-fb) #ranking-root table tr.excel-filter-row select.sort-filter,
  html body:not(.et-fb) #page-container .et_pb_code_inner table tr.excel-filter-row select.sort-filter {
    display: block !important;
    width: calc(100% - 6px) !important;
    height: 28px !important;
    cursor: pointer !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background-color: #0b1322 !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23cbd5e1'%3E%3Cpath d='M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: 14px !important;
    border: 0.5px solid #2a3a55 !important;
    border-radius: 8px !important;
    padding: 0 !important;
    margin: 0 3px 4px 3px !important;
    color: transparent !important;
    text-indent: -9999px !important;
    box-sizing: border-box !important;
  }html body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row select.sort-filter.active-sort,
  html body:not(.et-fb) #ranking-root table tr.excel-filter-row select.sort-filter.active-sort {
    background-image: none !important;
    color: #60a5fa !important;
    text-indent: 0 !important;
    font-weight: 800 !important;
    font-size: 10px !important;
    text-align: center !important;
    text-align-last: center !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }html body:not(.et-fb) .et_pb_code_inner table tr.excel-filter-row select.sort-filter option,
  html body:not(.et-fb) #ranking-root table tr.excel-filter-row select.sort-filter option {
    background: #0b1322 !important;
    color: #ffffff !important;
    text-indent: 0 !important;
    text-align: left !important;
    font-size: 11px !important;
  }html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row select.pai-column-filter-select,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row select.pai-column-filter-select,
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row select.pai-column-filter-select {
    height: 22px !important;
    font-size: 10px !important;
    line-height: 22px !important;
    padding: 0 18px 0 6px !important;
    text-align: center !important;
    text-align-last: center !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
  }html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row select.pai-column-filter-select option,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row select.pai-column-filter-select option,
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row select.pai-column-filter-select option {
    font-size: 10px !important;
    text-align: left !important;
  }.pai-column-filter-premium-panel {
    max-height: min(360px, calc(100vh - 16px)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }.pai-column-filter-premium-panel .pai-sort-premium-option {
    justify-content: flex-start !important;
    padding: 0 10px !important;
    font-family: Inter, system-ui, Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.15 !important;
    text-align: left !important;
  }.pai-column-filter-premium-panel .pai-column-filter-premium-label {
    justify-content: flex-start !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    text-align: left !important;
  }.pai-sort-premium-panel {
    position: fixed !important;
    z-index: 2147483647 !important;
    box-sizing: border-box !important;
    padding: 6px !important;
    border: 0.5px solid #2a3a55 !important;
    border-radius: 12px !important;
    background:
      radial-gradient(circle at 50% 0%, rgba(148,163,184,.14), rgba(148,163,184,0) 62%),
      linear-gradient(180deg, rgba(11,19,34,.99), rgba(3,8,18,.99)) !important;
    box-shadow:
      var(--pai-window-shadow) !important;
    overflow: hidden !important;
  }.pai-sort-premium-option {
    width: var(--pai-sort-button-w) !important;
    min-width: var(--pai-sort-button-w) !important;
    max-width: var(--pai-sort-button-w) !important;
    height: var(--pai-sort-button-h) !important;
    min-height: var(--pai-sort-button-h) !important;
    max-height: var(--pai-sort-button-h) !important;
    margin: 0 auto 5px auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    border: 1px solid transparent !important;
    border-radius: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #eaf2ff !important;
    background: transparent !important;
    font-family: "Segoe UI Symbol", "Segoe UI", Inter, system-ui, Arial, sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    user-select: none !important;
    text-rendering: geometricPrecision !important;
    -webkit-font-smoothing: antialiased !important;
  }.pai-sort-premium-option:last-child {
    margin-bottom: 0 !important;
  }.pai-sort-premium-option.is-active,
  .pai-sort-premium-option:hover,
  .pai-sort-premium-option.is-active:hover {
    color: #eaf2ff !important;
    background:
      radial-gradient(circle at 50% 38%, rgba(26,53,103,.28) 0%, rgba(8,18,36,0) 58%),
      linear-gradient(180deg, #0b1524 0%, #04080f 100%) !important;
    border-radius: 8px !important;
    box-shadow:
      0 0 0 1px rgba(42,58,85,.16) inset,
      0 6px 14px rgba(0,0,0,.28),
      0 0 10px rgba(148,163,184,.10) !important;
  }.pai-sort-premium-option:hover {
    color: #ffffff !important;
    box-shadow:
      0 0 0 1px rgba(51,71,102,.20) inset,
      0 7px 16px rgba(0,0,0,.32),
      0 0 12px rgba(148,163,184,.13) !important;
  }
  /* PAI_SUBMENU_SELECTED_BORDER_SSOT_V1 · V335
     Estándar obligatorio para submenús existentes y futuros:
     el borde de la opción seleccionada usa --pai-control-border-blue,
     la misma fuente de verdad que un filtro activo; nunca el azul de hover.
     La selección procede de aria-selected o del estado persistente del dueño.
     Hover, foco y data-active de navegación no significan selección.
     Nuevos submenús: .pai-submenu-option, con aria-selected="true/false"
     (aria-checked para opciones de selección múltiple). Reservar el borde en
     reposo y conservar el indicador de foco. En Shadow DOM, consumir el mismo
     token en el CSS interno. No copiar el RGBA ni crear un azul alternativo. */
  .pai-submenu-option {
    box-sizing: border-box;
    border: 1px solid transparent;
  }
  .pai-sort-premium-option:hover:not([aria-selected="true"]) {
    border-color: #334766 !important;
  }
  .pai-sort-premium-option[aria-selected="true"],
  html body:not(.et-fb) .ranking-cs-option[aria-selected="true"],
  html body:not(.et-fb) .filters-top .ranking-cs-option[aria-selected="true"],
  html body:not(.et-fb) .ranking-favorite-list-row[data-active="1"] > .ranking-favorite-list-item,
  #pai-three-real-chart-overlay-v1 .pai3d-preset-option.active,
  .pai-submenu-option[aria-selected="true"],
  .pai-submenu-option[aria-checked="true"] {
    border-color: var(--pai-control-border-blue) !important;
  }
  /* V337: el borde de cada opción abarca su icono de ayuda a la derecha.
     La ayuda conserva control propio y no hereda el pointerdown de selección. */
  .pai-opportunity-model-panel {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 28px !important;
    column-gap: 0 !important;
  }
  .pai-opportunity-model-panel.pai-projection-mode-premium-panel .pai-sort-premium-option {
    width: calc(var(--pai-sort-button-w) + 28px) !important;
    min-width: calc(var(--pai-sort-button-w) + 28px) !important;
    max-width: calc(var(--pai-sort-button-w) + 28px) !important;
    padding-right: 36px !important;
  }
  .pai-opportunity-model-help-column {
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 1;
  }
  .pai-opportunity-model-help {
    position: static !important;
    transform: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    width: 26px !important;
    height: var(--pai-sort-button-h) !important;
    min-height: var(--pai-sort-button-h) !important;
    margin: 0 0 5px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 6px !important;
    background: transparent !important;
    box-shadow: none !important;
    cursor: pointer !important;
  }
  .pai-opportunity-model-help:last-child { margin-bottom: 0 !important; }
  .pai-opportunity-model-help img { width: 16px !important; height: 16px !important; display: block !important; }
  [data-pai-opportunity-help]:focus-visible {
    outline: 2px solid var(--pai-control-border-blue) !important;
    outline-offset: 2px !important;
  }
  #ranking-metric-help-popover[data-pai-opportunity-popover] .ranking-metric-help-popover-card {
    overscroll-behavior: contain;
  }
  .pai-sort-premium-icon {
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    font-weight: 500 !important;
    font-size: 15px !important;
    line-height: 1 !important;
    transform: translateY(-0.5px) !important;
  }.pai-sort-premium-option:first-child .pai-sort-premium-icon {
    text-indent: 0 !important;
    font-size: 0 !important;
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
    overflow: visible !important;
    line-height: 1 !important;
    background: none !important;
  }.pai-sort-premium-option:first-child .pai-sort-premium-icon svg {
    width: 14px !important;
    height: 14px !important;
    display: block !important;
    fill: #cbd5e1 !important;
  }.pai-column-filter-premium-panel .pai-sort-premium-option,
  .pai-column-filter-premium-panel .pai-sort-premium-option:first-child {
    font-family: Inter, Helvetica, Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
  }.pai-column-filter-premium-panel .pai-sort-premium-icon,
  .pai-column-filter-premium-panel .pai-column-filter-premium-label,
  .pai-column-filter-premium-panel .pai-sort-premium-option:first-child .pai-sort-premium-icon,
  .pai-column-filter-premium-panel .pai-sort-premium-option:first-child .pai-column-filter-premium-label {
    font-family: "PAI Rajdhani Filtros", Rajdhani, sans-serif !important;
    font-size: 13.8px !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    color: #eaf2ff !important;
    -webkit-text-fill-color: #eaf2ff !important;
    text-indent: 0 !important;
    transform: none !important;
  }select.sort-filter.active-sort {
    text-align: center !important;
    text-align-last: center !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-indent: 0 !important;
  }/* ============================================================
     19. FONDO DE LA SECCIÓN DEL RANKING (VANTA.NET)
     - Wrappers de Divi a transparente para no tapar el canvas.
     - El <canvas> de VANTA mantiene su tamaño NATIVO (sin estirar) para
       no perder nitidez. Para que cubra toda la sección incluso cuando
       la tabla crece,
  el HTML.html dispara `window.resize` cuando el
       contenedor cambia de tamaño (ResizeObserver) y VANTA recalcula.
     ============================================================ */
  html body:not(.et-fb) #fondo-vanta,
  html body:not(.et-fb) #fondo-vanta .et_pb_row,
  html body:not(.et-fb) #fondo-vanta .et_pb_column,
  html body:not(.et-fb) #fondo-vanta .et_pb_module,
  html body:not(.et-fb) #fondo-vanta .et_pb_code,
  html body:not(.et-fb) #fondo-vanta .et_pb_code_inner {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
  }/* La sección #fondo-vanta queda en flujo normal pero su canvas hijo se
     fija al viewport con position:fixed para cubrir toda la pantalla. */
  html body:not(.et-fb) #fondo-vanta {
    position: relative !important;
    min-height: 100vh !important;
  }/* Canvas que VANTA inserta dentro de #fondo-vanta: posición fija al
     viewport,
  DETRÁS de todo (z-index: -2). Esto deja sitio a la capa
     de atenuación (z-index: -1) entre el canvas y el contenido. */
  html body:not(.et-fb) #fondo-vanta canvas {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: -2 !important;
    pointer-events: none !important;
  }/* ============================================================
     CAPA DE ATENUACIÓN VANTA — degradado vertical encima del canvas
     y debajo del contenido. Negro al 25% opaco arriba (75% transparente)
     y negro al 100% opaco abajo,
  para que el efecto VANTA sea sutil
     en la cabecera y casi imperceptible en la zona de la tabla.
     Implementado con html::after (pseudo-elemento del root) y
     z-index: -1 para que quede ENTRE el canvas (z=-2) y el contenido
     en flujo (sin z-index). El body se hace transparent para que los
     z-index negativos sean visibles; el color de respaldo sólido pasa
     al elemento <html>.
     ============================================================ */
  html::after {
    content: "" !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    background: linear-gradient(180deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,1) 100%) !important;
    z-index: -1 !important;
    pointer-events: none !important;
  }/* En light theme la capa es más sutil para no perder el blanco
     translúcido de la tabla. */
  html[data-theme="light"]::after {
    background: linear-gradient(180deg, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.55) 100%) !important;
  }/* El contenido de la sección debe quedar por encima del canvas. */
  html body:not(.et-fb) #fondo-vanta > .et_pb_row,
  html body:not(.et-fb) #fondo-vanta > .et_pb_row_inner,
  html body:not(.et-fb) #fondo-vanta > .et_pb_column,
  html body:not(.et-fb) #fondo-vanta > div:not(canvas) {
    position: relative !important;
    z-index: 1 !important;
  }/* Color de respaldo (#05070b) en el elemento <html> para que se vea
     detrás del canvas si VANTA tarda en cargar. El <body> y el
     #page-container se mantienen TRANSPARENTES para que la capa
     ::after con z-index negativo sea visible (los elementos detrás
     del body solo se ven si body no tiene background sólido). */
  html {
    background-color: #05070b !important;
  }html body:not(.et-fb) {
    background: transparent !important;
    background-color: transparent !important;
  }html body:not(.et-fb) #page-container {
    background: transparent !important;
    background-color: transparent !important;
  }/* Canvas de VANTA reposicionado al body via JS (si VANTA está activo).
     z-index: -2 igual que el canvas dentro de #fondo-vanta para que
     la capa de atenuación (html::after,
  z=-1) quede ENCIMA. */
  html body:not(.et-fb) > canvas.ranking-vanta-canvas,
  html body:not(.et-fb) canvas.ranking-vanta-canvas {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: -2 !important;
    pointer-events: none !important;
  }/* ============================================================
     FONDO HERO PATRIMONAI
     El usuario tiene CSS de ChatGPT (en otro sitio) que define las
     capas .pai-bg-base,
  .pai-bg-grid,
  .pai-bg-glow,
  .pai-bg-noise con
     animaciones .paiBaseShiftUltra/.paiGridMoveUltra/.paiGlow*Ultra/etc.
     Esas reglas usan selector ".patrimonai-hero-section .patrimonai-hero-bg"
     con position: absolute,
  lo que limita el fondo a la sección.
     AQUÍ forzamos .patrimonai-hero-bg a position:fixed con MAYOR
     especificidad que la de ChatGPT,
  así el fondo (y todas las capas
     absolute dentro) cubre TODO el viewport,
  incluyendo el header.
     ============================================================ */
  html body:not(.et-fb) #page-container .patrimonai-hero-section .patrimonai-hero-bg,
  html body:not(.et-fb) #page-container .patrimonai-hero-bg,
  html body:not(.et-fb) .patrimonai-hero-section .patrimonai-hero-bg,
  html body:not(.et-fb) .patrimonai-hero-bg {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 0 !important;
    pointer-events: none !important;
    margin: 0 !important;
    overflow: hidden !important;
  }/* Wrappers de Divi no deben recortar el fondo fixed con overflow:hidden */
  html body:not(.et-fb) .patrimonai-hero-section,
  html body:not(.et-fb) .patrimonai-hero-section .et_pb_row,
  html body:not(.et-fb) .patrimonai-hero-section .et_pb_column,
  html body:not(.et-fb) .patrimonai-hero-section .et_pb_module.patrimonai-bg-code,
  html body:not(.et-fb) .patrimonai-hero-section .et_pb_module.patrimonai-bg-code .et_pb_code_inner {
    overflow: visible !important;
    background: transparent !important;
    background-color: transparent !important;
  }/* El módulo de la tabla debe estar por encima del fondo. */
  html body:not(.et-fb) .et_pb_module.et_pb_code_1,
  html body:not(.et-fb) .et_pb_module.et_pb_code_1 .et_pb_code_inner {
    position: relative !important;
    z-index: 2 !important;
  }/* El contenido principal queda por encima del canvas (no tocamos header
     ni #main-header — Divi los gestiona con su propio position/z-index). */
  html body:not(.et-fb) #page-container,
  html body:not(.et-fb) #et-main-area {
    position: relative !important;
    z-index: 1 !important;
  }/* ============================================================
     20. THEME: LIGHT MODE
     Cuando html[data-theme="light"],
  se revierten los fondos y
     colores a la versión clara clásica. El canvas de VANTA se oculta
     vía JS (style.display: none).
     Las reglas usan ALTÍSIMA especificidad (html + 2 IDs + clases) para
     ganar a las reglas dark del bloque principal.
     ============================================================ */
  /* La <table> en sí queda TRANSPARENTE siempre (también en light) — solo
     las filas de datos cambian. El BACKGROUND se pinta sobre el <tr> y NO
     sobre el <td>: así el :hover sobre <td> puede sobreescribir.
     Para los <td> en light usamos !important con altísima especificidad
     pero en una regla más débil que el :hover. */
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody tr,
  html[data-theme="light"] body:not(.et-fb) #ranking-root table#table tbody tr,
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table tbody tr {
    background-color: #ffffff !important;
  }/* Los <td> también en blanco para tapar la transparencia de la regla dark */
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td,
  html[data-theme="light"] body:not(.et-fb) #ranking-root table#table tbody td,
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table tbody td {
    background-color: #ffffff !important;
  }/* Texto a oscuro en datos */
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table td:not([data-col-key="crecimiento"]):not([data-col-key="gagr"]):not([data-col-key="fx"]):not([data-col-key="patrimon"]) {
    color: #14213d !important;
    border-bottom: 1px solid #e8edf5 !important;
  }html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table td[data-col-key="crecimiento"],
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table td[data-col-key="gagr"],
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table td[data-col-key="fx"],
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table td[data-col-key="patrimon"] {
    color: #14213d !important;
    border-bottom: 1px solid #e8edf5 !important;
  }/* Empresa col 2 a negro (cubre todas las reglas que pintan blanco en dark) */
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table td:nth-child(2),
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table td:nth-child(2) a,
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table td:nth-child(2) a span,
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table td:nth-child(2) a:link,
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table td:nth-child(2) a:visited,
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table tbody tr:not(.sp500-row-styled) td:nth-child(2),
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table tbody tr:not(.sp500-row-styled) td:nth-child(2) a,
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table tbody tr:not(.sp500-row-styled) td:nth-child(2) span,
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table tbody tr:not(.sp500-row-styled) td:nth-child(2) * {
    color: #071122 !important;
  }/* Cabeceras (filtros + títulos): se MANTIENEN transparentes en light
     porque el usuario quiere ver VANTA detrás también en light mode. */
  /* Hover fila light: propietario único #41B4FF al 14% mediante la variable
     --ranking-row-hover-overlay. El box-shadow inset no compite con el
     background opaco de NO_BOUNCE y cubre simultáneamente cols 1, 2 y 3+.
     ESPECIFICIDAD CRÍTICA: conserva 3 IDs para superar la regla dinámica que
     pone box-shadow:none en las columnas sticky 1 y 2. */
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody tr:not(.excel-filter-row):not(.sp500-row-styled):not(.ranking-media-row-styled):hover > td,
  html[data-theme="light"] body:not(.et-fb) #ranking-root table#table tbody tr:not(.excel-filter-row):not(.sp500-row-styled):not(.ranking-media-row-styled):hover > td,
  html[data-theme="light"] body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody tr:not(.excel-filter-row):not(.sp500-row-styled):not(.ranking-media-row-styled):hover > td {
    box-shadow: inset 0 0 0 9999px var(--ranking-row-hover-overlay) !important;
  }/* Hover columna DESACTIVADO a petición del usuario.
     Mantenemos un selector vacío (sin reglas) para que cualquier copia antigua
     de css.txt no rompa el parser. */
  /* En light mode el #fondo-vanta sigue transparente (VANTA detrás visible) */
  
  /* === FASE 3 (tipografía): bloque "BC: nth 5–7 SP500+MEDIA 15px" eliminado
     por duplicar la capa semántica `[data-ranking-metric-col="1"]`. === */
  
  /* ============================================================
     COLUMN REORDER — drag & drop horizontal de cabeceras (col 3+).
     Las columnas 1 y 2 quedan ancladas (sin data-col-movable).
     ============================================================ */
  /* TH movible: cursor grab sobre la celda. Y `inherit` en TODOS los
     descendientes — así cualquier hijo (.ranking-metric-header-inner,
  pseudos,
  spans) hereda el grab del TH sin que reglas previas lo pisen.
     Las excepciones (controles interactivos del header) vuelven a pointer
     con reglas más específicas más abajo. */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table thead tr th[data-col-movable="1"],
  html body:not(.et-fb) #ranking-root table#table thead tr th[data-col-movable="1"],
  html body:not(.et-fb) table#table thead tr th[data-col-movable="1"] {
    cursor: grab !important;
    -webkit-user-select: none !important;
    user-select: none !important;
  }html body:not(.et-fb) table#table thead tr th[data-col-movable="1"] *,
  html body:not(.et-fb) table#table thead tr th[data-col-movable="1"] *::before,
  html body:not(.et-fb) table#table thead tr th[data-col-movable="1"] *::after {
    cursor: inherit !important;
  }/* Excepciones: el toggle root (checkboxes de visibilidad / "Orden inicial")
     y el icono info siempre vuelven a pointer porque allí se hace click. */
  html body:not(.et-fb) table#table thead tr th[data-col-movable="1"] .ranking-col-header-toggle-root,
  html body:not(.et-fb) table#table thead tr th[data-col-movable="1"] .ranking-col-header-toggle-root *,
  html body:not(.et-fb) table#table thead tr th[data-col-movable="1"] .ranking-metric-header-info-hit,
  html body:not(.et-fb) table#table thead tr th[data-col-movable="1"] .ranking-metric-header-info-hit *,
  html body:not(.et-fb) table#table thead tr th[data-col-movable="1"] input,
  html body:not(.et-fb) table#table thead tr th[data-col-movable="1"] button,
  html body:not(.et-fb) table#table thead tr th[data-col-movable="1"] select,
  html body:not(.et-fb) table#table thead tr th[data-col-movable="1"] textarea,
  html body:not(.et-fb) table#table thead tr th[data-col-movable="1"] a,
  html body:not(.et-fb) table#table thead tr th[data-col-movable="1"] label {
    cursor: pointer !important;
  }/* TH bloqueados (ticker,
  empresa) NO arrastrables: cursor por defecto. */
  html body:not(.et-fb) table#table thead tr th:not([data-col-movable]),
  html body:not(.et-fb) table#table thead tr th:not([data-col-movable]) * {
    cursor: default !important;
  }/* Mientras se arrastra: grabbing en TODO el documento + bloqueo
     de la selección azul de texto/datos. Selector v1: la clase
     `ranking-col-reorder-dragging` se añade al MISMO body, así que
     el selector debe ser `body:not(.et-fb).ranking-col-reorder-dragging`
     (sin espacio antes del punto, sin un segundo `body`). */
  html body:not(.et-fb).ranking-col-reorder-dragging,
  html body:not(.et-fb).ranking-col-reorder-dragging *,
  html body:not(.et-fb).ranking-col-reorder-dragging *::before,
  html body:not(.et-fb).ranking-col-reorder-dragging *::after {
    cursor: grabbing !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
  }/* TH origen (que se está arrastrando): atenuación + outline azul + bg sutil. */
  html body:not(.et-fb) th.ranking-col-dragging,
  html body:not(.et-fb) td.ranking-col-dragging {
    opacity: 0.55 !important;
    outline: 2px dashed rgba(59, 130, 246, 0.7) !important;
    outline-offset: -2px !important;
    background-color: rgba(59, 130, 246, 0.10) !important;
    transition: opacity 0.12s ease, background-color 0.12s ease !important;
  }html body:not(.et-fb) .ranking-col-drop-indicator {
    position: fixed !important;
    width: 3px !important;
    background: linear-gradient(180deg, #60a5fa 0%, #2563eb 100%) !important;
    box-shadow: 0 0 12px rgba(59, 130, 246, 0.55) !important;
    border-radius: 2px !important;
    pointer-events: none !important;
    z-index: 2147483646 !important;
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }/* ============================================================
     RESET ORDEN — igual que "Todas las columnas"
     ============================================================ */
  
  html body:not(.et-fb) .ranking-col-header-toggle-root {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    white-space: nowrap !important;
  }html body:not(.et-fb) .ranking-col-header-toggle-root .ranking-col-reset-order-label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
    transform: none !important;
    cursor: pointer !important;
    /* Misma caja tipográfica que .ranking-col-header-show-all-label (no heredar 13px/800 del <th>) */
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: normal !important;
    line-height: 16px !important;
    color: rgba(255, 255, 255, 0.75) !important;
    /* Sin -webkit-text-fill en el <label>: hereda al <input> y rompe el paint del checkbox en WebKit. */
    text-transform: none !important;
    white-space: nowrap !important;
    vertical-align: middle !important;
    -webkit-user-select: none !important;
    user-select: none !important;
  }/* El <input> no debe heredar relleno de texto del <label> (WebKit pinta la caja del checkbox). */
  html body:not(.et-fb) .ranking-col-header-toggle-root .ranking-col-reset-order-label input.ranking-col-header-vis-cb,html body:not(.et-fb) .ranking-col-header-toggle-root .ranking-col-reset-order-label input.ranking-resetorder-cb {
    position: static !important;transform: none !important;margin: 0 !important;padding: 0 !important;width: 16px !important;height: 16px !important;min-width: 16px !important;min-height: 16px !important;max-width: 16px !important;max-height: 16px !important;flex: 0 0 16px !important;vertical-align: middle !important;color: transparent !important;-webkit-text-fill-color: transparent !important;
  }html body:not(.et-fb) .ranking-col-header-toggle-root .ranking-col-reset-order-label,
  html body:not(.et-fb) .ranking-col-header-toggle-root .ranking-col-reset-order-label * {
    text-transform: none !important;
  }html body:not(.et-fb) .ranking-col-header-toggle-root .ranking-col-reset-order-label:hover {
    color: #cbd5e1 !important;
  }html body:not(.et-fb) .ranking-col-header-toggle-root .ranking-col-reset-order-label:hover .ranking-col-reset-order-text {
    color: #cbd5e1 !important;
    -webkit-text-fill-color: #cbd5e1 !important;
  }html[data-theme="light"] body:not(.et-fb) .ranking-col-header-toggle-root .ranking-col-reset-order-label {
    color: #475569 !important;
  }html[data-theme="light"] body:not(.et-fb) .ranking-col-header-toggle-root .ranking-col-reset-order-label .ranking-col-reset-order-text {
    color: #475569 !important;
    -webkit-text-fill-color: #475569 !important;
  }html[data-theme="light"] body:not(.et-fb) .ranking-col-header-toggle-root .ranking-col-reset-order-label:hover {
    color: #1e293b !important;
  }html[data-theme="light"] body:not(.et-fb) .ranking-col-header-toggle-root .ranking-col-reset-order-label:hover .ranking-col-reset-order-text {
    color: #1e293b !important;
    -webkit-text-fill-color: #1e293b !important;
  }
  @media (max-width: 720px) {html body:not(.et-fb) table#table thead tr th[data-col-movable="1"] {
      cursor: default !important;
    }html body:not(.et-fb) .ranking-col-drop-indicator { display: none !important; }
  }/* ============================================================
     R-NEW: BODY · formato por columna (data-col-key)
     Sustituye los antiguos bloques A,
  B,
  C,
  D,
  E,
  F,
  G,
  H,
  I,
  J,
  K (cols movibles).
     No afecta a thead,
  filtros,
  SP500 row,
  MEDIA row ni cols 1-2.
     Formato baseline efectivo capturado de v12 buena restaurada.
     ============================================================ */
  
  /* --- Fechas dinámicas (__date_start__ / __date_end__): tipografía 12px / 400.
     Geometría (64px) → RANKING_COLS + cellStyle. --- */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="__date_start__"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="__date_end__"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="__date_start__"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="__date_end__"],
  body:not(.et-fb) .et_pb_code_inner table#table tbody td[data-col-key="__date_start__"],
  body:not(.et-fb) .et_pb_code_inner table#table tbody td[data-col-key="__date_end__"] {
    font-size: 12px !important;
    font-weight: 400 !important;
  }/* --- Métricas % / GAGR / FX (crecimiento,
  gagr,
  fx): Arial 15px / 800 --- */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="crecimiento"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="gagr"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="fx"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="crecimiento"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="gagr"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="fx"],
  body:not(.et-fb) .et_pb_code_inner table#table tbody td[data-col-key="crecimiento"],
  body:not(.et-fb) .et_pb_code_inner table#table tbody td[data-col-key="gagr"],
  body:not(.et-fb) .et_pb_code_inner table#table tbody td[data-col-key="fx"] {
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    font-variant-numeric: tabular-nums lining-nums !important;
    font-feature-settings: "tnum" 1, "lnum" 1 !important;
    letter-spacing: 0 !important;
    font-stretch: 100% !important;
  }/* --- Métrica PATRIMON: Arial 16px / 800 --- */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="patrimon"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="patrimon"],
  body:not(.et-fb) .et_pb_code_inner table#table tbody td[data-col-key="patrimon"] {
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    font-variant-numeric: tabular-nums lining-nums !important;
    font-feature-settings: "tnum" 1, "lnum" 1 !important;
    letter-spacing: 0 !important;
    font-stretch: 100% !important;
  }/* --- Métrica BENEFICIO RANKING: Arial 16px / 800 --- */
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="beneficio_ranking"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="beneficio_ranking"],
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="beneficio_ranking"] {
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    font-variant-numeric: tabular-nums lining-nums !important;
    font-feature-settings: "tnum" 1, "lnum" 1 !important;
    letter-spacing: 0 !important;
    font-stretch: 100% !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    text-align: right !important;
  }
  html body:not(.et-fb) #ranking-root table#table td[data-col-key="beneficio_ranking"] *,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table td[data-col-key="beneficio_ranking"] *,
  body:not(.et-fb) .et_pb_code_inner table#table td[data-col-key="beneficio_ranking"] * {
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    font-variant-numeric: tabular-nums lining-nums !important;
    font-feature-settings: "tnum" 1, "lnum" 1 !important;
    letter-spacing: 0 !important;
    font-stretch: 100% !important;
    color: inherit !important;
    -webkit-text-fill-color: inherit !important;
  }/* --- ranking-metric-inline span dentro de crecimiento/gagr/fx (15px) --- */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="crecimiento"] .ranking-metric-inline,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="gagr"] .ranking-metric-inline,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="fx"] .ranking-metric-inline {
    display: inline !important;
    white-space: nowrap !important;
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    color: inherit !important;
    -webkit-text-fill-color: inherit !important;
  }/* --- ranking-metric-inline span dentro de patrimon (16px) --- */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="patrimon"] .ranking-metric-inline {
    display: inline !important;
    white-space: nowrap !important;
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    color: inherit !important;
    -webkit-text-fill-color: inherit !important;
  }/* --- Fecha en SP500: tipografía 12px / 400.
     Geometría (105px) → RANKING_COLS + cellStyle. --- */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="fecha en sp500"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="fecha en sp500"],
  body:not(.et-fb) .et_pb_code_inner table#table tbody td[data-col-key="fecha en sp500"] {
    font-size: 12px !important;
    font-weight: 400 !important;
  }/* --- Anos SP500 / Fundada / Sector: 12px / 400 --- */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="anos en sp500"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="fundada"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="sector"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="anos en sp500"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="fundada"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="sector"] {
    font-size: 12px !important;
    font-weight: 400 !important;
  }/* --- Subsector: tipografía exclusiva 11px / 400 (desacoplada) --- */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="subsector"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="subsector"] {
    font-size: 11px !important;
    font-weight: 400 !important;
  }/* FASE 2: tipografía FUNDADA / sector (geometría → RANKING_COLS + cellStyle). */
  
  /* --- Year horizon cols (1/5/10/15/20 anos): tbody td — Arial 15px/800 tabular; auto-fit contenido. --- */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="1 anos"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="5 anos"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="10 anos"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="15 anos"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="20 anos"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="1 anos"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="5 anos"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="10 anos"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="15 anos"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="20 anos"] {
    font-family: "PAI Rajdhani Datos",Rajdhani,sans-serif !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    font-variant-numeric: tabular-nums lining-nums !important;
    font-feature-settings: "tnum" 1, "lnum" 1 !important;
    letter-spacing: 0 !important;
    font-stretch: 100% !important;
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
  }html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="1 anos"] .ranking-year-unit,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="5 anos"] .ranking-year-unit,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="10 anos"] .ranking-year-unit,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="15 anos"] .ranking-year-unit,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="20 anos"] .ranking-year-unit,
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="1 anos"] .ranking-year-unit,
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="5 anos"] .ranking-year-unit,
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="10 anos"] .ranking-year-unit,
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="15 anos"] .ranking-year-unit,
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="20 anos"] .ranking-year-unit {
    color: #2f7df6 !important;
    -webkit-text-fill-color: #2f7df6 !important;
    font-weight: 800 !important;
  }html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="1 anos"] .ranking-year-euro,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="5 anos"] .ranking-year-euro,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="10 anos"] .ranking-year-euro,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="15 anos"] .ranking-year-euro,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="20 anos"] .ranking-year-euro,
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="1 anos"] .ranking-year-euro,
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="5 anos"] .ranking-year-euro,
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="10 anos"] .ranking-year-euro,
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="15 anos"] .ranking-year-euro,
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="20 anos"] .ranking-year-euro {
    color: inherit !important;
    -webkit-text-fill-color: inherit !important;
  }/* ============================================================
     Thead label row — posición vertical por tipo de col (no SSOT de
     anchos; tbody → RANKING_COLS + cellStyle; thead → renderLabelCell).
     ============================================================ */
  
  /* BUENA — Bloque B — 1 línea sin icono (fundada,
  sector,
  subsector) */
  html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="fundada"],
  html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="sector"],
  html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="subsector"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="fundada"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="sector"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="subsector"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="fundada"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="sector"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="subsector"] {
    padding-top: 32px !important;
    padding-bottom: 0 !important;
    vertical-align: top !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }/* BUENA — Bloque C — años (1 anos,
  5 anos,
  10 anos,
  15 anos,
  20 anos) */
  html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="1 anos"],
  html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="5 anos"],
  html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="10 anos"],
  html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="15 anos"],
  html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="20 anos"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="1 anos"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="5 anos"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="10 anos"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="15 anos"],
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="20 anos"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="1 anos"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="5 anos"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="10 anos"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="15 anos"],
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row:not(.ranking-media-row-styled) + tr th[data-col-key="20 anos"] {
    padding-top: 35px !important;
    padding-bottom: 0 !important;
    vertical-align: top !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }/* subsector tbody: quiebre de palabra (ancho vía RANKING_COLS + cellStyle). */
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tbody td[data-col-key="subsector"] .ranking-subsector-text,
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="subsector"] .ranking-subsector-text,
  body:not(.et-fb) .et_pb_code_inner table#table tbody td[data-col-key="subsector"] .ranking-subsector-text {
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
  }html body:not(.et-fb) #ranking-root .filters-top-fixed-inner > *,
  html body:not(.et-fb) #page-container #ranking-root .filters-top-fixed-inner > * {
    align-self: center !important;
    vertical-align: middle !important;
    box-sizing: border-box !important;
  }/* Labels: Patrimonio inicial / Periodo / Listas / Tabla */
  html body:not(.et-fb) #ranking-root .filters-top-fixed-inner > .label-desde,
  html body:not(.et-fb) #page-container #ranking-root .filters-top-fixed-inner > .label-desde,
  html body:not(.et-fb) .filters-top .filters-top-fixed-inner > .label-desde {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
  
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
  
    line-height: 36px !important;
    padding: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  
    font-size: 13px !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
  
    transform: none !important;
    translate: none !important;
  }/* Selects custom */
  html body:not(.et-fb) #ranking-root .filters-top-fixed-inner .ranking-cs,
  html body:not(.et-fb) #page-container #ranking-root .filters-top-fixed-inner .ranking-cs,
  html body:not(.et-fb) .filters-top .filters-top-fixed-inner .ranking-cs {
    display: inline-flex !important;
    align-items: center !important;
    align-self: center !important;
  
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
  
    line-height: 36px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  
    transform: none !important;
    translate: none !important;
  }html body:not(.et-fb) #ranking-root .filters-top-fixed-inner .ranking-cs-trigger,
  html body:not(.et-fb) #page-container #ranking-root .filters-top-fixed-inner .ranking-cs-trigger,
  html body:not(.et-fb) .filters-top .filters-top-fixed-inner .ranking-cs-trigger {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    align-self: center !important;
  
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
  
    line-height: 36px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  
    box-sizing: border-box !important;
    transform: none !important;
    translate: none !important;
  }html body:not(.et-fb) #ranking-root .filters-top-fixed-inner .ranking-cs-label,
  html body:not(.et-fb) #page-container #ranking-root .filters-top-fixed-inner .ranking-cs-label,
  html body:not(.et-fb) .filters-top .filters-top-fixed-inner .ranking-cs-label {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  
    height: 34px !important;
    line-height: 34px !important;
  
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }/* Flecha del custom select */
  html body:not(.et-fb) #ranking-root .filters-top-fixed-inner .ranking-cs-arrow,
  html body:not(.et-fb) #page-container #ranking-root .filters-top-fixed-inner .ranking-cs-arrow,
  html body:not(.et-fb) .filters-top .filters-top-fixed-inner .ranking-cs-arrow {
    align-self: center !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }/* Botón ojo: misma altura que los selects */
  html body:not(.et-fb) #ranking-root .filters-top-fixed-inner button.eye-button,
  html body:not(.et-fb) #page-container #ranking-root .filters-top-fixed-inner button.eye-button,
  html body:not(.et-fb) .filters-top .filters-top-fixed-inner button.eye-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
  
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
  
    line-height: 36px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  
    vertical-align: middle !important;
    box-sizing: border-box !important;
    transform: none !important;
    translate: none !important;
  }/* SVG del ojo centrado real */
  html body:not(.et-fb) #ranking-root .filters-top-fixed-inner button.eye-button svg,
  html body:not(.et-fb) #page-container #ranking-root .filters-top-fixed-inner button.eye-button svg,
  html body:not(.et-fb) .filters-top .filters-top-fixed-inner button.eye-button svg {
    display: block !important;
    align-self: center !important;
    margin: 0 !important;
    transform: none !important;
  }/* ============================================================
     FIX H-SCROLL: hover/click correcto en columnas congeladas 1-2
     - Cuando hay scroll horizontal,
  las cols 1-2 son sticky y tienen
       z-index muy alto.
     - Al hacer hover en logo/nombre/link {
    position: relative !important;
    z-index: 12000000 !important;
  }/* Links de col 1 y col 2 siempre clicables durante h-scroll. */
  html[data-ranking-h-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tbody td:nth-child(1) a,
  html[data-ranking-h-scrolled] body:not(.et-fb) #page-container #ranking-root table#table tbody td:nth-child(2) a,
  html[data-ranking-h-scrolled] body:not(.et-fb) #ranking-root table#table tbody td:nth-child(1) a,
  html[data-ranking-h-scrolled] body:not(.et-fb) #ranking-root table#table tbody td:nth-child(2) a {
    pointer-events: auto !important;
    position: relative !important;
    z-index: 2 !important;
  }/* ============================================================
     CHECKBOX FILA MEDIA — mismo stack que filas normales (R115).
     El JS ya no pone ranking-special-vis-cb en MEDIA; ver bloque final
     en ranking-hover-inline-style por si alguna regla legacy pisa el paint.
     ============================================================ */
  
  /* NOTA: el CSS del popover (.ranking-metric-help-popover-*) vive en un
     bloque dedicado más abajo: <style id="ranking-metric-help-popover-css-port-v1">.
     Aquí se eliminó la duplicación previa (FIX DEFINITIVO POPOVER GLYPHS)
     para evitar reglas glyph repetidas. Las variantes --oval, --oval-anual,
     --compact y --media están todas consolidadas en el bloque dedicado. */
  /* ============================================================
     FIX MEDIA DARK: previsiones 1/5/10/15/20 años en blanco
     Solo afecta a fila MEDIA en tabla negra.
     (data-col-key en este proyecto: "1 anos",
  "5 anos" {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
  }/* ============================================================
     FIX — Ocultar texto largo de comentarios dentro de fila títulos
     El comentario solo debe verse en #ranking-metric-help-popover
     ============================================================ */
  
  html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row + tr th .ranking-metric-header-tooltip,
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row + tr th .ranking-metric-header-tooltip,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row + tr th .ranking-metric-header-tooltip,
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row + tr th .ranking-metric-header-tooltip {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    max-width: 1px !important;
    max-height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    font-size: 0 !important;
    line-height: 0 !important;
    text-indent: -9999px !important;
  }/* Si el texto se está colando dentro del wrapper del icono,
  también se oculta */
  html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row + tr th .ranking-metric-header-info-hit,
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row + tr th .ranking-metric-header-info-hit,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row + tr th .ranking-metric-header-info-hit,
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row + tr th .ranking-metric-header-info-hit {
    overflow: hidden !important;
    white-space: nowrap !important;
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
    text-indent: -9999px !important;
  }
  /* Icono nativo sin tinte azul: precio/beneficios, resultados y tendencias. */
  #thead th[data-col-key="precio vs bpa 5a"] > .ranking-metric-header-info-hit,
  #thead th[data-col-key="bollinger mes"] > .ranking-metric-header-info-hit,
  #thead th[data-col-key="bollinger semana"] > .ranking-metric-header-info-hit,
  #thead th[data-col-key="bollinger dia"] > .ranking-metric-header-info-hit,
  #thead th[data-col-key="proximos resultados"] > .ranking-metric-header-info-hit,
  #thead th[data-col-key="tendencia 15 anos"] > .ranking-metric-header-info-hit,
  #thead th[data-col-key="reactivo mes"] > .ranking-metric-header-info-hit,
  #thead th[data-col-key="reactivo semana"] > .ranking-metric-header-info-hit,
  #thead th[data-col-key="reactivo dia"] > .ranking-metric-header-info-hit,
  #thead th[data-col-key="tendencia estable"] > .ranking-metric-header-info-hit {
    filter: grayscale(1) !important;
  }/* Pero el icono info SÍ debe seguir visible */
  html body:not(.et-fb) #page-container #ranking-root table#table tr.excel-filter-row + tr th .ranking-metric-header-info-hit img,
  html body:not(.et-fb) #ranking-root table#table tr.excel-filter-row + tr th .ranking-metric-header-info-hit img,
  html body:not(.et-fb) #page-container .et_pb_code_inner table#table tr.excel-filter-row + tr th .ranking-metric-header-info-hit img,
  body:not(.et-fb) .et_pb_code_inner table#table tr.excel-filter-row + tr th .ranking-metric-header-info-hit img {
    display: block !important;
    width: 16px !important;
    height: 16px !important;
    opacity: 1 !important;
    visibility: visible !important;
    text-indent: 0 !important;
  }/* ============================================================
     FIX FINAL — Métricas movidas a cols 1-2 mantienen verde/rojo
     Gana a light mode,
  nth-child(1/2),
  Empresa/Ticker y spans internos.
     Identidad semántica por data-col-key + data-ranking-sign.
     ============================================================ */
  
  /* POSITIVO — td métrico */
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="pct hoy"][data-ranking-sign="pos"],
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="crecimiento"][data-ranking-sign="pos"],
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="gagr"][data-ranking-sign="pos"],
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="fx"][data-ranking-sign="pos"],
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="patrimon"][data-ranking-sign="pos"],
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="beneficio_ranking"][data-ranking-sign="pos"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="pct hoy"][data-ranking-sign="pos"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="crecimiento"][data-ranking-sign="pos"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="gagr"][data-ranking-sign="pos"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="fx"][data-ranking-sign="pos"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="patrimon"][data-ranking-sign="pos"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="beneficio_ranking"][data-ranking-sign="pos"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="pct hoy"][data-ranking-sign="pos"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="crecimiento"][data-ranking-sign="pos"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="gagr"][data-ranking-sign="pos"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="fx"][data-ranking-sign="pos"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="patrimon"][data-ranking-sign="pos"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="beneficio_ranking"][data-ranking-sign="pos"] {
    color: #3DB88B !important;
    -webkit-text-fill-color: #3DB88B !important;
  }/* POSITIVO — hijos internos */
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-ranking-metric-col="1"][data-ranking-sign="pos"] *,
  html body:not(.et-fb) #ranking-root table#table tbody td[data-ranking-metric-col="1"][data-ranking-sign="pos"] *,
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-ranking-metric-col="1"][data-ranking-sign="pos"] * {
    color: #3DB88B !important;
    -webkit-text-fill-color: #3DB88B !important;
  }/* NEGATIVO — td métrico */
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="pct hoy"][data-ranking-sign="neg"],
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="crecimiento"][data-ranking-sign="neg"],
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="gagr"][data-ranking-sign="neg"],
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="fx"][data-ranking-sign="neg"],
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="patrimon"][data-ranking-sign="neg"],
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="beneficio_ranking"][data-ranking-sign="neg"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="pct hoy"][data-ranking-sign="neg"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="crecimiento"][data-ranking-sign="neg"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="gagr"][data-ranking-sign="neg"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="fx"][data-ranking-sign="neg"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="patrimon"][data-ranking-sign="neg"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="beneficio_ranking"][data-ranking-sign="neg"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="pct hoy"][data-ranking-sign="neg"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="crecimiento"][data-ranking-sign="neg"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="gagr"][data-ranking-sign="neg"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="fx"][data-ranking-sign="neg"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="patrimon"][data-ranking-sign="neg"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="beneficio_ranking"][data-ranking-sign="neg"] {
    color: #ef4444 !important;
    -webkit-text-fill-color: #ef4444 !important;
  }/* NEGATIVO — hijos internos */
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-ranking-metric-col="1"][data-ranking-sign="neg"] *,
  html body:not(.et-fb) #ranking-root table#table tbody td[data-ranking-metric-col="1"][data-ranking-sign="neg"] *,
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-ranking-metric-col="1"][data-ranking-sign="neg"] * {
    color: #ef4444 !important;
    -webkit-text-fill-color: #ef4444 !important;
  }/* CERO — td métrico */
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="pct hoy"][data-ranking-sign="zero"],
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="crecimiento"][data-ranking-sign="zero"],
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="gagr"][data-ranking-sign="zero"],
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="fx"][data-ranking-sign="zero"],
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="patrimon"][data-ranking-sign="zero"],
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="beneficio_ranking"][data-ranking-sign="zero"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="pct hoy"][data-ranking-sign="zero"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="crecimiento"][data-ranking-sign="zero"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="gagr"][data-ranking-sign="zero"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="fx"][data-ranking-sign="zero"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="patrimon"][data-ranking-sign="zero"],
  html body:not(.et-fb) #ranking-root table#table tbody td[data-col-key="beneficio_ranking"][data-ranking-sign="zero"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="pct hoy"][data-ranking-sign="zero"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="crecimiento"][data-ranking-sign="zero"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="gagr"][data-ranking-sign="zero"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="fx"][data-ranking-sign="zero"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="patrimon"][data-ranking-sign="zero"],
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-col-key="beneficio_ranking"][data-ranking-sign="zero"] {
    color: #64748b !important;
    -webkit-text-fill-color: #64748b !important;
  }/* CERO — hijos internos */
  html body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-ranking-metric-col="1"][data-ranking-sign="zero"] *,
  html body:not(.et-fb) #ranking-root table#table tbody td[data-ranking-metric-col="1"][data-ranking-sign="zero"] *,
  html[data-theme="light"] body:not(.et-fb) #page-container #ranking-root table#table tbody td[data-ranking-metric-col="1"][data-ranking-sign="zero"] * {
    color: #64748b !important;
    -webkit-text-fill-color: #64748b !important;
  }/* ============================================================
     POPOVER INFO — CABECERA ARRIBA/STICKY
     Solo cuando JS añade .ranking-metric-help-popover--below-header:
     - el comentario baja debajo de la cabecera
     - la flecha sale desde arriba del comentario y apunta al icono
     ============================================================ */
  
  html body:not(.et-fb) #ranking-metric-help-popover.ranking-metric-help-popover--below-header {
    position: fixed !important;
    transform: translateX(-50%) !important;
    z-index: 2147483647 !important;
  }html body:not(.et-fb) #ranking-metric-help-popover.ranking-metric-help-popover--below-header .ranking-metric-help-popover-card::after {
    top: calc(-1 * var(--ranking-popover-arrow-len, 24px)) !important;
    bottom: auto !important;
  
    border-top: 0 !important;
    border-bottom: var(--ranking-popover-arrow-len, 24px) solid rgba(59, 130, 246, 0.65) !important;
    border-left: 7px solid transparent !important;
    border-right: 7px solid transparent !important;
  
    filter: drop-shadow(0 -4px 12px rgba(59, 130, 246, 0.35)) !important;
  }/* ============================================================
     Tabla (theme): ocultar solo el control superior antiguo.
     #themeSelect permanece en el DOM para estado y listeners.
     REGLAS ACOTADAS a .filters-top: nunca un selector global sobre
     .ranking-theme-top-control-hidden (una versión antigua podía
     marcar .filters-top-fixed-inner y desaparecía toda la barra).
     ============================================================ */
  html body:not(.et-fb) #ranking-root .filters-top .label-desde.ranking-theme-top-control-hidden,
  html body:not(.et-fb) #page-container #ranking-root .filters-top .label-desde.ranking-theme-top-control-hidden,
  html body:not(.et-fb) .filters-top .label-desde.ranking-theme-top-control-hidden {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }html body:not(.et-fb) #ranking-root .filters-top .ranking-cs[data-target="themeSelect"].ranking-theme-top-control-hidden,
  html body:not(.et-fb) #page-container #ranking-root .filters-top .ranking-cs[data-target="themeSelect"].ranking-theme-top-control-hidden,
  html body:not(.et-fb) .filters-top .ranking-cs[data-target="themeSelect"].ranking-theme-top-control-hidden {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }html body:not(.et-fb) #ranking-root .filters-top select#themeSelect.ranking-theme-top-control-hidden,
  html body:not(.et-fb) #page-container #ranking-root .filters-top select#themeSelect.ranking-theme-top-control-hidden,
  html body:not(.et-fb) .filters-top select#themeSelect.ranking-theme-top-control-hidden {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }/* ============================================================
     COLOR TABLA — control en cabecera junto a Todas las columnas
     ============================================================ */
  
  html body:not(.et-fb) .ranking-table-color-inline-control {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 15px 0 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
    font: inherit !important;
    line-height: inherit !important;
    color: inherit !important;
    vertical-align: middle !important;
    position: relative !important;
    z-index: 99999999 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
  }html body:not(.et-fb) .ranking-table-color-inline-title {
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    color: rgba(255,255,255,.9) !important;
    -webkit-text-fill-color: rgba(255,255,255,.9) !important;
    text-transform: none !important;
    white-space: nowrap !important;
    pointer-events: none !important;
  }html[data-theme="light"] body:not(.et-fb) .ranking-table-color-inline-title {
    color: #475569 !important;
    -webkit-text-fill-color: #475569 !important;
  }html body:not(.et-fb) .ranking-table-color-inline-box {
    display: inline-block !important;
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    max-width: 16px !important;
    min-height: 16px !important;
    max-height: 16px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #27466f !important;
    border-radius: 4px !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    vertical-align: middle !important;
    pointer-events: auto !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
  }html body:not(.et-fb) .ranking-table-color-inline-box[data-mode="light"] {
    background: #ffffff !important;
    background-color: #ffffff !important;
  }html body:not(.et-fb) .ranking-table-color-inline-box[data-mode="dark"] {
    background: #05070d !important;
    background-color: #05070d !important;
  }html body:not(.et-fb) .ranking-table-color-inline-box::before,
  html body:not(.et-fb) .ranking-table-color-inline-box::after {
    content: none !important;
    display: none !important;
  }/* ============================================================
     TOGGLES CABECERA EMPRESA — texto + checkbox a la derecha
     (solo th[data-col-key="empresa"]; no afecta otros toggle-root).
     ============================================================ */
  
  html body:not(.et-fb) th[data-col-key="empresa"] .ranking-col-header-toggle-root {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 15px !important;
    white-space: nowrap !important;
    flex-wrap: nowrap !important;
    position: relative !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }html body:not(.et-fb) th[data-col-key="empresa"] .ranking-col-header-toggle-root label,
  html body:not(.et-fb) th[data-col-key="empresa"] .ranking-col-header-toggle-root .ranking-header-toggle-label-fixed {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-direction: row !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
    line-height: 16px !important;
    vertical-align: middle !important;
    position: static !important;
    transform: none !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    flex: 0 0 auto !important;
  }html body:not(.et-fb) th[data-col-key="empresa"] .ranking-col-header-toggle-root label span,
  html body:not(.et-fb) th[data-col-key="empresa"] .ranking-col-header-toggle-root .ranking-header-toggle-text-fixed {
    order: 1 !important;
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
    line-height: 16px !important;
    vertical-align: middle !important;
  }html body:not(.et-fb) th[data-col-key="empresa"] .ranking-col-header-toggle-root label input[type="checkbox"],
  html body:not(.et-fb) th[data-col-key="empresa"] .ranking-col-header-toggle-root .ranking-header-toggle-cb-fixed {
    order: 2 !important;
  
    -webkit-appearance: none !important;
    appearance: none !important;
    -moz-appearance: none !important;
  
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    min-height: 16px !important;
    max-width: 16px !important;
    max-height: 16px !important;
  
    margin: 0 !important;
    padding: 0 !important;
  
    border: 1px solid #27466f !important;
    border-radius: 4px !important;
    background-color: #0b1322 !important;
    background-image: none !important;
    box-shadow: none !important;
    outline: none !important;
  
    display: inline-block !important;
    vertical-align: middle !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
  
    background-repeat: no-repeat !important;
    background-position: center !important;
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
  
    overflow: hidden !important;
    clip-path: none !important;
    transform: none !important;
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    flex: 0 0 16px !important;
  }html body:not(.et-fb) th[data-col-key="empresa"] .ranking-col-header-toggle-root label input[type="checkbox"]:checked,
  html body:not(.et-fb) th[data-col-key="empresa"] .ranking-col-header-toggle-root .ranking-header-toggle-cb-fixed:checked {
    border-color: #3b4d6e !important;
    background-color: #0b1322 !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 8l3 3 5-6' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-size: 11.25px 11.25px !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
  }html body:not(.et-fb) th[data-col-key="empresa"] .ranking-col-header-toggle-root label input[type="checkbox"]::before,
  html body:not(.et-fb) th[data-col-key="empresa"] .ranking-col-header-toggle-root label input[type="checkbox"]::after,
  html body:not(.et-fb) th[data-col-key="empresa"] .ranking-col-header-toggle-root .ranking-header-toggle-cb-fixed::before,
  html body:not(.et-fb) th[data-col-key="empresa"] .ranking-col-header-toggle-root .ranking-header-toggle-cb-fixed::after {
    content: none !important;
    display: none !important;
  }html body:not(.et-fb) th[data-col-key="empresa"] .ranking-table-color-inline-control,
  html body:not(.et-fb) th[data-col-key="empresa"] .pai-table-color-control {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
    flex: 0 0 auto !important;
    position: static !important;
    transform: none !important;
  }html body:not(.et-fb) th[data-col-key="empresa"] .ranking-header-toggle-text-fixed {
    color: rgba(255, 255, 255, 0.75) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.75) !important;
  }html[data-theme="light"] body:not(.et-fb) th[data-col-key="empresa"] .ranking-header-toggle-text-fixed {
    color: #475569 !important;
    -webkit-text-fill-color: #475569 !important;
  }/* ============================================================
     AJUSTE FINAL HERO + CONTROLES SUPERIORES
     - "Analiza…" subida 15px
     - Fila botones/selects/ojo subida 30px
     Validado por consola: subir-analiza-15-botones-30
     ============================================================ */
  
  html body:not(.et-fb) .patrimonio-hero-bg .patrimonio-content p.patrimonio-lead {
    transform: translateY(-15px) !important;
  }html body:not(.et-fb) #ranking-root .filters-top-fixed-inner,
  html body:not(.et-fb) #page-container #ranking-root .filters-top-fixed-inner,
  html body:not(.et-fb) .filters-top .filters-top-fixed-inner {
    top: calc(var(--ranking-filters-fixed-top, 0px) - 30px) !important;
  }html body:not(.et-fb) #ranking-root .filters-top:not(.filters-top-fixed-x),
  html body:not(.et-fb) #page-container #ranking-root .filters-top:not(.filters-top-fixed-x) {
    margin-top: -30px !important;
  }
  
  @media (max-width: 980px) {
    html,
    body {
      width: 100% !important;
      max-width: 100% !important;
      overflow-x: hidden !important;
    }
  
    html body:not(.et-fb) #ranking-root,
    html body:not(.et-fb) #page-container #ranking-root,
    html body:not(.et-fb) #fondo-vanta #ranking-root,
    html body:not(.et-fb) #page-container #fondo-vanta #ranking-root,
    html body:not(.et-fb) .et_pb_code_inner #ranking-root {
      display: block !important;
      position: relative !important;
      left: auto !important;
      right: auto !important;
      width: 100vw !important;
      min-width: 0 !important;
      max-width: 100vw !important;
      overflow-x: scroll !important;
      overflow-y: visible !important;
      -webkit-overflow-scrolling: touch !important;
      touch-action: pan-x pan-y !important;
      box-sizing: border-box !important;
      contain: none !important;
    }
  
    html body:not(.et-fb) #ranking-root > * {
      max-width: none !important;
    }
  
    html body:not(.et-fb) #ranking-root .patrimonio-hero-bg {
      position: -webkit-sticky !important;
      position: sticky !important;
      left: 0 !important;
      top: auto !important;
      width: 100vw !important;
      min-width: 100vw !important;
      max-width: 100vw !important;
      overflow: visible !important;
      box-sizing: border-box !important;
      transform: none !important;
      contain: none !important;
      isolation: isolate !important;
    }
  
    html body:not(.et-fb) #ranking-root .filters-top {
      position: sticky !important;
      left: 0 !important;
      top: auto !important;
      width: 100vw !important;
      min-width: 100vw !important;
      max-width: 100vw !important;
      overflow: visible !important;
      padding-left: 12px !important;
      padding-right: 12px !important;
      box-sizing: border-box !important;
      -webkit-overflow-scrolling: touch !important;
      touch-action: pan-x pan-y !important;
    }
  
    html body:not(.et-fb) #ranking-root table#table {
      display: table !important;
      width: max-content !important;
      min-width: max-content !important;
      max-width: none !important;
      table-layout: auto !important;
      touch-action: pan-x pan-y !important;
    }
  }
  
  