/* Hoja de la ficha de evento (app, regatas del entrenador y portal del curso).
   Era un <style> de 215 KB en _event_detail_styles.html, repetido en cada
   visita; como fichero estático versionado se descarga una vez. */
    .sailiq-atmosphere {
      background: #ffffff !important;
    }
    .glass-shell {
      background: #ffffff !important;
      border-bottom: 1px solid #dbe3ec !important;
      -webkit-backdrop-filter: none !important;
      backdrop-filter: none !important;
    }
    main.max-w-5xl {
      max-width: none !important;
      width: 100% !important;
      padding-left: 0 !important;
      padding-right: 0 !important;
    }
    .event-detail-shell {
      width: min(96vw, 1960px);
      max-width: 1880px;
      margin: 0 auto;
      padding: 0 0 2.4rem;
    }
    .event-hero {
      position: relative;
      min-height: 78vh;
      border-radius: 30px;
      overflow: hidden;
      margin: 0.2rem 0 1.1rem;
      background:
        radial-gradient(circle at top left, rgba(255,255,255,0.22), transparent 34%),
        linear-gradient(135deg, #f28b3c 0%, #f5a24f 46%, #ef8a40 100%);
      box-shadow: 0 28px 72px -54px rgba(15, 23, 42, 0.6);
    }
    .event-hero.has-banner {
      background-position: center;
      background-size: cover;
      background-repeat: no-repeat;
    }
    .event-hero::before {
      content: "";
      position: absolute;
      inset: 0;
      background:
        linear-gradient(180deg, rgba(20, 12, 2, 0.03) 0%, rgba(20, 12, 2, 0.1) 20%, rgba(20, 12, 2, 0.22) 68%, rgba(20, 12, 2, 0.38) 100%),
        linear-gradient(90deg, rgba(20, 12, 2, 0.14) 0%, rgba(20, 12, 2, 0.04) 50%, rgba(20, 12, 2, 0.1) 100%);
      z-index: 0;
    }
    .event-hero::after {
      content: "";
      position: absolute;
      inset: 4% auto auto 6%;
      width: 88%;
      height: 88%;
      border-radius: 999px 999px 45% 45%;
      background: none;
      filter: none;
      opacity: 0;
      z-index: 0;
      pointer-events: none;
    }
    .event-hero-inner {
      position: relative;
      z-index: 1;
      display: flex;
      min-height: 78vh;
      flex-direction: column;
      justify-content: space-between;
      padding: 1.2rem 1.2rem 1.45rem;
    }
    .event-hero-top {
      display: flex;
      align-items: flex-start;
      justify-content: flex-end;
      gap: 1rem;
    }
    .event-hero-brand {
      display: inline-flex;
      align-items: center;
      gap: 0.7rem;
      min-width: 0;
      padding: 0.6rem 0.85rem;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.12);
      border: 1px solid rgba(255, 255, 255, 0.16);
      backdrop-filter: blur(18px);
      -webkit-backdrop-filter: blur(18px);
    }
    .event-hero-brand-avatar {
      width: 2.65rem;
      height: 2.65rem;
      border-radius: 999px;
      overflow: hidden;
      background: rgba(255,255,255,0.18);
      display: grid;
      place-items: center;
      color: #fff;
      font-size: 0.88rem;
      font-weight: 700;
      flex: 0 0 auto;
    }
    .event-hero-brand-avatar img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    .event-hero-brand-copy {
      min-width: 0;
      display: grid;
      gap: 0.14rem;
    }
    .event-hero-brand-copy strong,
    .event-hero-brand-copy span {
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .event-hero-brand-copy strong {
      font-size: 0.92rem;
      line-height: 1.2;
      color: #fff;
      font-weight: 650;
    }
    .event-hero-brand-copy span {
      font-size: 0.73rem;
      line-height: 1.2;
      color: rgba(255, 255, 255, 0.74);
      text-transform: uppercase;
      letter-spacing: 0.08em;
    }
    .event-hero-actions {
      display: flex;
      align-items: center;
      gap: 0.55rem;
    }
    .event-hero-toggle {
      width: 3.15rem;
      height: 3.15rem;
      border-radius: 999px;
      border: 0;
      background: rgba(255, 255, 255, 0.4);
      color: rgba(17, 24, 39, 0.68);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      backdrop-filter: blur(18px);
      -webkit-backdrop-filter: blur(18px);
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.24);
    }
    .event-hero-toggle svg {
      width: 1.2rem;
      height: 1.2rem;
      display: block;
    }
    .event-hero-action,
    .event-hero-action-secondary {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      border-radius: 999px;
      padding: 0.92rem 1.35rem;
      text-decoration: none;
      transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease, border-color 180ms ease;
      font-size: 0.98rem;
      line-height: 1;
      font-weight: 500;
    }
    .event-hero-action {
      background: #ffffff;
      color: #0f172a;
      border: 1px solid rgba(255, 255, 255, 0.88);
      box-shadow: 0 16px 28px -22px rgba(15, 23, 42, 0.4);
    }
    .event-hero-action-danger {
      background: #fee2e2;
      color: #991b1b;
      border: 1px solid #fecaca;
      box-shadow: 0 16px 28px -22px rgba(153, 27, 27, 0.28);
    }
    .event-hero-action-secondary {
      background: rgba(255, 255, 255, 0.06);
      color: #fff;
      border: 1px solid rgba(255, 255, 255, 0.72);
      box-shadow: none;
    }
    .event-hero-action:hover,
    .event-hero-toggle:hover,
    .event-hero-action-secondary:hover {
      transform: translateY(-1px);
    }
    .event-hero-action-copy {
      display: inline-flex;
      align-items: center;
    }
    .event-hero-action-dot {
      width: 0.62rem;
      height: 0.62rem;
      border-radius: 999px;
      background: #ef4444;
      box-shadow: 0 0 0 0.3rem rgba(239, 68, 68, 0.2);
      flex: 0 0 auto;
    }
    .event-hero-bottom {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: 1.4rem;
      padding-top: 4.5rem;
    }
    .event-hero-copy {
      max-width: 980px;
      display: grid;
      gap: 1rem;
    }
    .event-hero-organizer {
      position: absolute;
      top: 1.35rem;
      left: 1.35rem;
      z-index: 3;
      width: 7.4rem;
      height: 7.4rem;
      border-radius: 999px;
      overflow: hidden;
      display: grid;
      place-items: center;
      background: rgba(255, 255, 255, 0.18);
      border: 3px solid rgba(255, 255, 255, 0.82);
      box-shadow: 0 24px 48px -28px rgba(15, 23, 42, 0.78);
      color: #fff;
      font-size: 1.45rem;
      font-weight: 700;
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
    }
    .event-hero-organizer img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    .event-hero-kicker {
      display: inline-flex;
      width: fit-content;
      align-items: center;
      gap: 0.45rem;
      padding: 0;
      border-radius: 0;
      background: transparent;
      border: 0;
      color: rgba(255, 255, 255, 0.88);
      font-size: 0.78rem;
      line-height: 1;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      font-weight: 600;
    }
    .event-hero-title {
      margin: 0;
      font-size: clamp(3rem, 6vw, 5.8rem);
      line-height: 0.92;
      letter-spacing: -0.08em;
      color: #fff;
      font-weight: 700;
      max-width: 14ch;
      text-wrap: balance;
    }
    /* Portada personalizada que ya lleva el nombre incrustado: el h1 sigue
       existiendo para lectores de pantalla y SEO, pero no se pinta encima. */
    .event-hero-title.is-hidden-on-banner {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }
    .event-hero-subtitle {
      margin: 0;
      max-width: 68ch;
      font-size: 1.04rem;
      line-height: 1.55;
      color: rgba(255, 255, 255, 0.9);
    }
    .event-hero-subtitle.is-compact {
      max-width: 52ch;
      font-size: 1rem;
      line-height: 1.48;
    }
    .event-hero-pills {
      display: flex;
      flex-wrap: wrap;
      gap: 0.85rem 1.6rem;
      margin-top: 0.5rem;
    }
    .event-hero-pill {
      display: grid;
      gap: 0.08rem;
      padding: 0;
      border-radius: 0;
      background: transparent;
      border: 0;
      color: #fff;
    }
    .event-hero-pill strong,
    .event-hero-pill span {
      display: block;
    }
    .event-hero-pill strong {
      font-size: 1rem;
      line-height: 1.2;
      font-weight: 500;
      color: #fff;
    }
    .event-hero-pill span {
      font-size: 0.72rem;
      line-height: 1.2;
      color: rgba(255, 255, 255, 0.74);
      text-transform: uppercase;
      letter-spacing: 0.08em;
    }
    .event-hero-cta-row {
      display: flex;
      flex-wrap: wrap;
      justify-content: flex-end;
      align-items: center;
      gap: 0.8rem;
      padding-bottom: 0.15rem;
    }
    .event-detail-card {
      background: #fff !important;
      border: 0 !important;
      border-radius: 0 !important;
      box-shadow: none !important;
    }
    .event-detail-layout {
      display: grid;
      grid-template-columns: minmax(0, 1.72fr) minmax(220px, 0.72fr);
      gap: 1rem;
      align-items: start;
      background: #ffffff;
      display: none;
    }
    .event-showcase {
      padding: 1.6rem 0 2.4rem;
      background: #fff;
      width: 100vw;
      margin-left: calc(50% - 50vw);
      margin-right: calc(50% - 50vw);
    }
    .event-showcase-inner {
      width: 100%;
      max-width: 100%;
      margin: 0 auto;
    }
    .event-showcase-heading {
      margin: 0 0 2.35rem;
      padding-left: clamp(3.4rem, 9vw, 8rem);
      font-size: clamp(2.4rem, 4.8vw, 3.9rem);
      line-height: 0.92;
      letter-spacing: -0.08em;
      font-weight: 700;
      color: #101114;
      text-align: left;
    }
    .event-showcase-rail {
      overflow-x: auto;
      overflow-y: visible;
      padding-bottom: 0.45rem;
      scroll-padding-left: clamp(3.4rem, 9vw, 8rem);
      scrollbar-width: none;
      -webkit-overflow-scrolling: touch;
    }
    .event-showcase-rail::-webkit-scrollbar {
      display: none;
    }
    .event-showcase-grid {
      display: grid;
      grid-auto-flow: column;
      grid-auto-columns: minmax(0, 21rem);
      justify-content: flex-start;
      gap: 1.25rem;
      width: max-content;
      min-width: 100%;
      padding-left: clamp(3.4rem, 9vw, 8rem);
    }
    .event-showcase-card {
      position: relative;
      min-height: 26rem;
      border: 0;
      border-radius: 2rem;
      overflow: visible;
      text-align: left;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      padding: 1.3rem 1.3rem 1.45rem;
      box-shadow: 0 24px 54px -46px rgba(15, 23, 42, 0.34);
      transition: transform 180ms ease, box-shadow 180ms ease;
      cursor: pointer;
      scroll-snap-align: start;
    }
    .event-showcase-card:hover {
      transform: translateY(-2px);
      box-shadow: 0 26px 58px -42px rgba(15, 23, 42, 0.38);
    }
    .event-showcase-rail,
    .event-showcase-grid {
      scroll-snap-type: x proximity;
    }
    .event-showcase-card.info {
      background: linear-gradient(180deg, #f8efe5 0%, #f3e4d2 100%);
      color: #111214;
    }
    .event-showcase-card.toa {
      background: linear-gradient(180deg, #f7f6f4 0%, #efeeec 100%);
      color: #111214;
    }
    .event-showcase-card.results {
      background: linear-gradient(180deg, #d9eefc 0%, #c9e4f8 100%);
      color: #111214;
    }
    .event-showcase-card.live {
      background: linear-gradient(180deg, #dceee8 0%, #cfe5dd 52%, #c3ddd5 100%);
      color: #111214;
    }
    .event-showcase-topline {
      font-size: 0.74rem;
      line-height: 1.1;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      opacity: 0.72;
    }
    .event-showcase-copy h3 {
      margin: 0.4rem 0 0;
      font-size: clamp(1.8rem, 2.5vw, 2.35rem);
      line-height: 0.95;
      letter-spacing: -0.06em;
      font-weight: 700;
    }
    .event-showcase-copy p {
      margin: 0.75rem 0 0;
      font-size: 1rem;
      line-height: 1.45;
      max-width: 24ch;
      opacity: 0.84;
    }
    .event-showcase-art {
      position: relative;
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 15rem;
      margin: 0.5rem 0;
      width: 100%;
    }
    .event-showcase-cover {
      position: absolute;
      inset: 0;
      overflow: visible;
    }
    .event-showcase-cover-cluster {
      position: absolute;
      inset: 0;
    }
    .event-showcase-cover-tile {
      position: absolute;
      display: grid;
      place-items: center;
      border-radius: 1.35rem;
      box-shadow: 0 20px 36px -26px rgba(15, 23, 42, 0.34);
    }
    .event-showcase-cover-tile svg {
      width: 50%;
      height: 50%;
      display: block;
    }
    .event-showcase-cover-tile-soft {
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
    }
    .event-showcase-card.toa .event-showcase-cover-tile {
      color: rgba(255, 255, 255, 0.94);
    }
    .event-showcase-card.results .event-showcase-cover-tile {
      color: #0f172a;
    }
    .event-showcase-card.live .event-showcase-cover-tile {
      color: #115e59;
    }
    .event-showcase-card.info .event-showcase-cover-tile {
      color: #7c2d12;
    }
    .event-showcase-cover-tile-main {
      z-index: 4;
      display: grid !important;
      place-items: center;
    }
    .event-showcase-cover-tile-soft {
      z-index: 5;
      display: grid !important;
      place-items: center;
    }
    .event-showcase-card.toa .event-showcase-cover-tile-main {
      width: 9.5rem;
      height: 9.5rem;
      left: 50%;
      top: 60%;
      transform: translate(-50%, -50%);
      border-radius: 2.4rem;
      background: #0f172a !important;
      color: #ffffff !important;
      box-shadow: 0 24px 64px -12px rgba(15, 23, 42, 0.55);
    }
    .event-showcase-card.results .event-showcase-cover-tile-main {
      width: 9.5rem;
      height: 9.5rem;
      left: 50%;
      top: 60%;
      transform: translate(-50%, -50%);
      border-radius: 2.4rem;
      background: #ffffff !important;
      color: #0f172a !important;
      box-shadow: 0 24px 64px -12px rgba(15, 23, 42, 0.25);
    }
    .event-showcase-card.live .event-showcase-cover-tile-main {
      width: 10rem;
      height: 10rem;
      left: 50%;
      top: 60%;
      transform: translate(-50%, -50%);
      border-radius: 2.6rem;
      background: #134e4a !important;
      color: #f0fdfa !important;
      box-shadow: 0 24px 64px -12px rgba(13, 148, 136, 0.35);
    }
    .event-showcase-card.info .event-showcase-cover-tile-main {
      width: 9.6rem;
      height: 9.6rem;
      left: 50%;
      top: 60%;
      transform: translate(-50%, -50%);
      border-radius: 2.45rem;
      background: #7c2d12 !important;
      color: #fff7ed !important;
      box-shadow: 0 24px 64px -12px rgba(124, 45, 18, 0.34);
    }
    .event-showcase-cover-tile-left {
      width: 6.2rem;
      height: 6.2rem;
      left: 2%;
      top: 35%;
      transform: rotate(-18deg);
    }
    .event-showcase-cover-tile-right {
      width: 5.8rem;
      height: 5.8rem;
      right: 3%;
      top: 52%;
      transform: rotate(15deg);
    }
    .event-showcase-cover-tile-bottom {
      width: 5.4rem;
      height: 5.4rem;
      left: 8%;
      bottom: 2%;
      transform: rotate(-12deg);
    }
    .event-showcase-card.toa .event-showcase-cover-tile-soft {
      background: rgba(255, 255, 255, 0.45);
      border: 1px solid rgba(255, 255, 255, 0.6);
      color: #0f172a;
    }
    .event-showcase-card.results .event-showcase-cover-tile-soft {
      background: rgba(255, 255, 255, 0.45);
      border: 1px solid rgba(255, 255, 255, 0.6);
    }
    .event-showcase-card.live .event-showcase-cover-tile-soft {
      background: rgba(255, 255, 255, 0.45);
      border: 1px solid rgba(255, 255, 255, 0.6);
    }
    .event-showcase-card.info .event-showcase-cover-tile-soft {
      background: rgba(255, 251, 235, 0.72);
      border: 1px solid rgba(255, 247, 237, 0.9);
    }
    .event-showcase-live-center {
      display: none;
    }
    .event-showcase-live-center strong {
      display: block;
      font-size: clamp(2.9rem, 4.5vw, 4rem);
      line-height: 1;
      letter-spacing: -0.06em;
      font-weight: 500;
    }
    .event-showcase-live-center span {
      display: block;
      margin-top: 0.35rem;
      font-size: 0.86rem;
      line-height: 1.2;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: rgba(223, 234, 244, 0.84);
    }
    .event-showcase-cta {
      display: inline-flex;
      align-items: center;
      gap: 0.45rem;
      font-size: 0.96rem;
      font-weight: 600;
      letter-spacing: -0.02em;
    }
    .event-showcase-cta::after {
      content: ">";
      font-size: 1rem;
      line-height: 1;
    }

    /* ── Showcase full-screen modal (Apple-style) ─────── */
    .sc-modal-overlay {
      position: fixed;
      inset: 0;
      z-index: 2000;
      display: none;
      background: rgba(0, 0, 0, 0.48);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      align-items: flex-end;
      justify-content: center;
      padding: 0;
    }
    .sc-modal-overlay.is-open { display: flex; }
    .sc-modal-sheet {
      width: 100%;
      max-width: 100%;
      height: calc(100vh - 2.5rem);
      background: #fff;
      border-radius: 1.8rem 1.8rem 0 0;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      box-shadow: 0 -8px 60px rgba(0,0,0,0.18);
      animation: sc-modal-up 0.32s cubic-bezier(0.32, 0.72, 0, 1);
    }
    @keyframes sc-modal-up {
      from { transform: translateY(100%); }
      to   { transform: translateY(0); }
    }
    .sc-modal-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      padding: 2.2rem max(2rem, 6vw) 0;
      flex-shrink: 0;
    }
    .sc-modal-title-wrap {
      display: flex;
      align-items: flex-start;
      gap: 0.9rem;
      min-width: 0;
    }
    .sc-modal-title-copy {
      min-width: 0;
    }
    .sc-modal-title-wrap-narrow {
      width: min(100%, 52rem);
      margin: 0 auto;
    }
    .sc-modal-title-icon {
      width: 3.1rem;
      height: 3.1rem;
      border-radius: 1rem;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex: 0 0 auto;
      margin-top: 1.05rem;
      box-shadow: 0 18px 34px -24px rgba(15, 23, 42, 0.42);
    }
    .sc-modal-title-icon svg {
      width: 1.5rem;
      height: 1.5rem;
      display: block;
    }
    .sc-modal-title-icon-info {
      background: #7c2d12;
      color: #fff7ed;
    }
    .sc-modal-title-icon-toa {
      background: #0f172a;
      color: #ffffff;
    }
    .sc-modal-title-icon-results {
      background: #ffffff;
      color: #0f172a;
      box-shadow: inset 0 0 0 1px rgba(203, 213, 225, 0.92), 0 18px 34px -24px rgba(15, 23, 42, 0.25);
    }
    .sc-modal-title-icon-live {
      background: #134e4a;
      color: #f0fdfa;
      box-shadow: 0 18px 34px -24px rgba(13, 148, 136, 0.35);
    }
    .sc-modal-label {
      font-size: 0.72rem;
      font-weight: 600;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: #6e6e73;
      margin-bottom: 0.35rem;
    }
    .sc-modal-title {
      font-size: clamp(1.8rem, 3.5vw, 2.8rem);
      font-weight: 700;
      letter-spacing: -0.04em;
      line-height: 1.08;
      color: #1d1d1f;
      margin: 0;
    }
    .sc-modal-close {
      width: 2.4rem;
      height: 2.4rem;
      border: 0;
      border-radius: 50%;
      background: rgba(0, 0, 0, 0.06);
      color: #1d1d1f;
      display: grid;
      place-items: center;
      cursor: pointer;
      flex-shrink: 0;
      margin-top: 0.2rem;
      transition: background 150ms;
    }
    .sc-modal-close:hover { background: rgba(0, 0, 0, 0.12); }
    .sc-modal-close svg { width: 0.9rem; height: 0.9rem; }
    .sc-modal-body {
      flex: 1;
      overflow-y: auto;
      padding: 2rem max(2rem, 6vw) 3rem;
      min-height: 0;
    }
    @media (max-width: 640px) {
      .sc-modal-sheet { height: calc(100vh - 1rem); border-radius: 1.2rem 1.2rem 0 0; }
      .sc-modal-header { padding: 1.5rem 1.2rem 0; }
      .sc-modal-body { padding: 1.2rem 1.2rem 2rem; }
      .sc-modal-title-wrap {
        gap: 0.75rem;
      }
      .sc-modal-title-copy {
        min-width: 0;
      }
      .sc-modal-title-icon {
        width: 2.7rem;
        height: 2.7rem;
        border-radius: 0.9rem;
        margin-top: 0.9rem;
      }
      .sc-modal-title-icon svg {
        width: 1.3rem;
        height: 1.3rem;
      }
    }
    .sc-modal-overlay.sc-modal-overlay-compact {
      align-items: center;
      padding: 1.2rem;
    }
    .sc-modal-overlay-compact .sc-modal-sheet {
      width: min(100%, 42rem);
      max-width: 42rem;
      height: auto;
      max-height: min(78vh, 46rem);
      border-radius: 1.8rem;
      box-shadow: 0 24px 72px -30px rgba(15, 23, 42, 0.45);
      animation: none;
    }
    .sc-modal-overlay-compact .sc-modal-header {
      padding: 1.5rem 1.5rem 0;
    }
    .sc-modal-overlay-compact .sc-modal-body {
      padding: 1.25rem 1.5rem 1.6rem;
    }
    .event-general-modal-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.9rem;
    }
    .event-general-modal-item {
      padding: 1rem 1.05rem;
      border-radius: 1.2rem;
      background: #f8fafc;
      border: 1px solid #e2e8f0;
    }
    .event-general-modal-item-full {
      grid-column: 1 / -1;
    }
    .event-general-modal-item-label {
      margin: 0 0 0.52rem;
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      font-size: 0.7rem;
      line-height: 1.2;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: #64748b;
      font-weight: 700;
    }
    .event-general-modal-item-label-icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex: 0 0 auto;
      color: #c084fc;
    }
    .event-general-modal-item-label-icon svg {
      width: 1rem;
      height: 1rem;
      display: block;
    }
    .event-general-modal-item-label-icon-date {
      color: #f9a8d4;
    }
    .event-general-modal-item-label-icon-classes {
      color: #fdba74;
    }
    .event-general-modal-item-label-icon-organizer {
      color: #93c5fd;
    }
    .event-general-modal-item-label-icon-location {
      color: #86efac;
    }
    .event-general-modal-item-label-icon-description {
      color: #fca5a5;
    }
    .event-general-modal-item-value {
      margin: 0;
      font-size: 0.98rem;
      line-height: 1.45;
      color: #0f172a;
    }
    .event-general-modal-link {
      display: inline-flex;
      align-items: center;
      gap: 0.45rem;
      color: #0f766e;
      font-weight: 600;
      text-decoration: none;
    }
    .event-general-modal-link:hover {
      text-decoration: underline;
    }
    .event-general-modal-link svg {
      width: 0.95rem;
      height: 0.95rem;
      flex: 0 0 auto;
    }
    .event-general-modal-organizer {
      display: flex;
      align-items: center;
      gap: 0.7rem;
      min-width: 0;
      width: 100%;
    }
    .event-general-modal-organizer-avatar {
      width: 2.5rem;
      height: 2.5rem;
      border-radius: 999px;
      overflow: hidden;
      display: inline-grid;
      place-items: center;
      flex: 0 0 auto;
      background: #e2e8f0;
      color: #0f172a;
      font-size: 0.9rem;
      font-weight: 700;
      box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.25);
    }
    .event-general-modal-organizer-avatar img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    .event-general-modal-organizer-copy {
      min-width: 0;
      flex: 1 1 auto;
    }
    .event-general-modal-organizer-copy strong,
    .event-general-modal-organizer-copy span {
      display: block;
      overflow-wrap: anywhere;
      word-break: break-word;
    }
    .event-general-modal-organizer-copy strong {
      color: #0f172a;
      font-size: 0.96rem;
      line-height: 1.3;
    }
    .event-general-modal-organizer-copy span {
      margin-top: 0.14rem;
      color: #64748b;
      font-size: 0.78rem;
      line-height: 1.2;
    }
    .event-general-modal-class-list {
      display: flex;
      flex-wrap: wrap;
      gap: 0.45rem;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .event-general-modal-class-list li {
      display: inline-flex;
      align-items: center;
      min-height: 2rem;
      padding: 0.38rem 0.72rem;
      border-radius: 999px;
      background: #fff7ed;
      border: 1px solid #fdba74;
      color: #9a3412;
      font-size: 0.8rem;
      font-weight: 600;
      line-height: 1.1;
    }
    .event-general-modal-description {
      white-space: pre-line;
    }
    .event-general-modal-empty {
      color: #64748b;
    }
    @media (max-width: 640px) {
      .sc-modal-overlay.sc-modal-overlay-compact {
        align-items: flex-end;
        padding: 0;
      }
      .sc-modal-overlay-compact .sc-modal-sheet {
        width: 100%;
        max-width: 100%;
        max-height: calc(100vh - 1rem);
        border-radius: 1.2rem 1.2rem 0 0;
      }
      .event-general-modal-grid {
        grid-template-columns: 1fr;
      }
    }

    /* ── TOA document list inside modal ── */
    .sc-doc-list { list-style: none; padding: 0; margin: 0; }
    .sc-doc-filters {
      display: flex;
      flex-wrap: wrap;
      gap: 0.55rem;
      width: min(100%, 52rem);
      margin: 0 auto 1rem;
    }
    .sc-doc-filter-pill {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 2.15rem;
      padding: 0.45rem 0.8rem;
      border-radius: 999px;
      border: 1px solid #cbd5e1;
      background: #fff;
      color: #475569;
      font-size: 12px;
      font-weight: 600;
      line-height: 1;
      transition: background 160ms ease, border-color 160ms ease, color 160ms ease;
    }
    .sc-doc-filter-pill.is-active {
      background: #eff6ff;
      border-color: #93c5fd;
      color: #1d4ed8;
    }
    .sc-doc-item {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      padding: 1rem 0;
      width: min(100%, 52rem);
      margin: 0 auto;
      border-bottom: 1px solid #f1f5f9;
    }
    .sc-doc-item.is-filter-hidden {
      display: none !important;
    }
    .sc-doc-item:last-child { border-bottom: 0; }
    .sc-doc-name { font-size: 1.1rem; font-weight: 700; line-height: 1.25; color: #1d1d1f; }
    .sc-doc-desc { font-size: 0.78rem; color: #6e6e73; margin-top: 0.15rem; }
    .sc-doc-meta {
      display: inline-flex;
      align-items: center;
      gap: 0.55rem;
      flex-wrap: wrap;
      justify-content: flex-end;
      flex-shrink: 0;
    }
    .sc-doc-date {
      font-size: 0.8rem;
      font-weight: 600;
      color: #64748b;
      white-space: nowrap;
    }
    .sc-doc-link {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      padding: 0.45rem 0.9rem;
      border-radius: 999px;
      background: #f5f5f7;
      color: #1d1d1f;
      font-size: 0.78rem;
      font-weight: 600;
      text-decoration: none;
      transition: background 150ms;
    }
    .sc-doc-link:hover { background: #e8e8ed; }
    .sc-doc-empty-filter {
      width: min(100%, 52rem);
      margin: 0 auto;
      padding: 1rem 0 0;
      color: #64748b;
      font-size: 0.92rem;
    }
    .sc-doc-empty-filter.hidden {
      display: none !important;
    }
    /* ── Tablón oficial moderno: barra de filtros + tarjetas de documento ── */
    .toa-filterbar {
      display: grid;
      gap: 0.85rem;
      padding: 0 0 1.4rem;
      margin-bottom: 1.6rem;
      border-bottom: 1px solid #e6ebf2;
    }
    .toa-filter-row { display: flex; flex-wrap: wrap; gap: 0.55rem; }
    .toa-filter-chip, .toa-filter-section {
      appearance: none; cursor: pointer; border: 1px solid #dce3eb; background: #fff;
      border-radius: 999px; color: #64748b; font-size: .76rem; font-weight: 800;
      letter-spacing: .07em; padding: .62rem .88rem; text-transform: uppercase;
      transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
    }
    .toa-filter-chip:hover, .toa-filter-section:hover { border-color: #93c5fd; color: #1d4ed8; }
    .toa-filter-chip.is-active, .toa-filter-section.is-active {
      background: #f8fbff; border-color: #60a5fa; color: #2563eb;
      box-shadow: inset 0 0 0 1px rgba(37, 99, 235, .08);
    }
    .toa-class-circle {
      appearance: none; width: 3.35rem; height: 3.35rem; padding: .22rem;
      border: 2px solid #e2e8f0; border-radius: 50%; background: #fff;
      color: #16385c; cursor: pointer; display: inline-flex; align-items: center;
      justify-content: center; overflow: hidden; font-size: .67rem; font-weight: 850;
      letter-spacing: -.02em; text-transform: uppercase;
      transition: border-color .15s ease, transform .12s ease, box-shadow .15s ease;
    }
    .toa-class-circle img { width: 100%; height: 100%; object-fit: contain; }
    .toa-class-circle:hover { border-color: #93c5fd; transform: translateY(-2px); }
    .toa-class-circle.is-active { border-color: #60a5fa; box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
    .toa-search-controls { display: flex; align-items: center; gap: .65rem; }
    .toa-search-controls .toa-filter-search { flex: 1; min-width: 0; }
    .toa-search-controls .toa-search-wrap,
    .toa-search-controls .toa-search-input { min-width: 0; width: 100%; }
    .toa-section-select-wrap { flex: 0 1 13rem; min-width: 0; max-width: 45%; }
    .toa-section-select-wrap .toa-select { width: 100%; min-width: 0; text-overflow: ellipsis; }
    @media (max-width: 640px) {
      .toa-search-controls .toa-filter-label { display: none; }
    }
    .toa-filter { display: flex; align-items: center; gap: 0.7rem; }
    .toa-filter-search { min-width: 14rem; }
    .toa-filter-label {
      font-size: 0.95rem;
      font-weight: 800;
      color: #0f172a;
      letter-spacing: -0.01em;
      white-space: nowrap;
    }
    .toa-select-wrap { position: relative; display: inline-flex; }
    .toa-select {
      appearance: none;
      -webkit-appearance: none;
      background: #fff;
      border: 1px solid #d8dee7;
      border-radius: 0.75rem;
      padding: 0.6rem 2.4rem 0.6rem 0.95rem;
      font-size: 0.92rem;
      font-weight: 600;
      color: #1d1d1f;
      cursor: pointer;
      min-width: 11rem;
      transition: border-color 150ms ease, box-shadow 150ms ease;
    }
    .toa-select:focus { outline: 0; border-color: #0071e3; box-shadow: 0 0 0 3px rgba(0,113,227,.16); }
    .toa-select-chevron {
      position: absolute;
      right: 0.85rem;
      top: 50%;
      transform: translateY(-50%);
      width: 1.05rem;
      height: 1.05rem;
      color: #64748b;
      pointer-events: none;
    }
    .toa-search-wrap { position: relative; display: flex; flex: 1; }
    .toa-search-icon {
      position: absolute;
      left: 0.9rem;
      top: 50%;
      transform: translateY(-50%);
      width: 1.1rem;
      height: 1.1rem;
      color: #94a3b8;
      pointer-events: none;
    }
    .toa-search-input {
      flex: 1;
      background: #f2f4f8;
      border: 1px solid transparent;
      border-radius: 0.75rem;
      padding: 0.62rem 1rem 0.62rem 2.7rem;
      font-size: 0.92rem;
      color: #1d1d1f;
      transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
    }
    .toa-search-input::placeholder { color: #9aa4b2; }
    .toa-search-input:focus { outline: 0; background: #fff; border-color: #0071e3; box-shadow: 0 0 0 3px rgba(0,113,227,.16); }
    .toa-doc-list { display: grid; gap: 1rem; }
    .toa-doc-card {
      display: flex;
      align-items: center;
      gap: 1.35rem;
      background: #fff;
      border: 1px solid #e6ebf2;
      border-radius: 1.15rem;
      padding: 1.25rem 1.5rem 1.25rem 1.25rem;
      box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
      transition: box-shadow 180ms ease, transform 180ms ease, border-color 180ms ease;
    }
    .toa-doc-card:hover {
      box-shadow: 0 14px 34px -20px rgba(15, 23, 42, 0.4);
      transform: translateY(-2px);
      border-color: #dbe4ee;
    }
    .toa-doc-card.is-filter-hidden { display: none !important; }
    .toa-doc-filetile {
      position: relative;
      flex-shrink: 0;
      width: 4.6rem;
      height: 5.6rem;
      border-radius: 0.8rem;
      background: linear-gradient(160deg, #e3b13e, #d79a2b);
      color: #fff;
      display: flex;
      align-items: flex-end;
      justify-content: center;
      padding-bottom: 0.7rem;
      font-size: 0.92rem;
      font-weight: 900;
      letter-spacing: 0.06em;
      box-shadow: 0 8px 18px -10px rgba(215, 154, 43, 0.8);
    }
    .toa-doc-filetile-fold {
      position: absolute;
      top: 0;
      right: 0;
      width: 1.3rem;
      height: 1.3rem;
      background: rgba(0, 0, 0, 0.18);
      border-radius: 0 0.8rem 0 0.7rem;
      clip-path: polygon(0 0, 100% 0, 100% 100%);
    }
    .toa-doc-filetile.is-route {
      background: linear-gradient(160deg, #1f2f50, #2f4a7a);
      align-items: center;
      padding-bottom: 0;
    }
    .toa-doc-filetile.is-route svg { width: 2.1rem; height: 2.1rem; }
    .toa-doc-main { flex: 1; min-width: 0; }
    .toa-doc-title {
      margin: 0;
      font-size: 1.18rem;
      font-weight: 800;
      letter-spacing: -0.02em;
      color: #16385c;
      line-height: 1.25;
    }
    .toa-doc-sub {
      margin: 0.4rem 0 0;
      font-size: 0.92rem;
      font-weight: 700;
      color: #2f8ad0;
    }
    .toa-doc-size { font-weight: 600; }
    .toa-doc-kind {
      margin: 0.35rem 0 0;
      font-size: 0.85rem;
      color: #6e7784;
    }
    .toa-doc-badges { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.75rem; }
    .toa-doc-badge {
      display: inline-flex;
      align-items: center;
      padding: 0.32rem 0.7rem;
      border-radius: 0.6rem;
      border: 1px solid #dbe1ea;
      background: #f7f9fc;
      font-size: 0.72rem;
      font-weight: 800;
      letter-spacing: 0.02em;
      text-transform: uppercase;
      color: #16385c;
    }
    .toa-doc-download {
      flex-shrink: 0;
      align-self: flex-end;
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      background: transparent;
      border: 0;
      cursor: pointer;
      font-size: 0.82rem;
      font-weight: 800;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: #64748b;
      text-decoration: none;
      transition: color 150ms ease;
    }
    .toa-doc-download:hover { color: #0071e3; }
    .toa-doc-download-icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 2.1rem;
      height: 2.1rem;
      border-radius: 9999px;
      border: 1.5px solid currentColor;
    }
    .toa-doc-download-icon svg { width: 1.05rem; height: 1.05rem; }
    @media (max-width: 640px) {
      .toa-filterbar { gap: 0.9rem; }
      .toa-filter { width: 100%; }
      .toa-select, .toa-select-wrap { width: 100%; }
      .toa-doc-card { flex-wrap: wrap; padding: 1.1rem; gap: 1rem; }
      .toa-doc-download { align-self: flex-start; }
    }

    /* ── Live organizer chat modal ── */
    .sc-live-shell {
      width: min(100%, 52rem);
      margin: 0 auto;
      display: grid;
      gap: 1rem;
    }
    .sc-live-tabs {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      width: fit-content;
      padding: 0.28rem;
      border-radius: 999px;
      background: #f1f5f9;
      border: 1px solid #dbe4ef;
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.85);
    }
    .sc-live-tab {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 5.9rem;
      min-height: 2.15rem;
      padding: 0 0.95rem;
      border: 0;
      border-radius: 999px;
      background: transparent;
      color: #64748b;
      font-size: 0.8rem;
      font-weight: 700;
      line-height: 1;
      transition: background 160ms ease, color 160ms ease, box-shadow 160ms ease;
    }
    .sc-live-tab.is-active {
      background: #ffffff;
      color: #0f172a;
      box-shadow: 0 10px 20px -18px rgba(15, 23, 42, 0.42);
    }
    .sc-live-panel.hidden {
      display: none;
    }
    .sc-live-cta {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.55rem;
      width: fit-content;
      min-height: 2.8rem;
      padding: 0.7rem 1.15rem;
      border-radius: 999px;
      background: #0f172a;
      color: #ffffff;
      text-decoration: none;
      font-size: 0.9rem;
      font-weight: 700;
      box-shadow: 0 18px 34px -26px rgba(15, 23, 42, 0.52);
    }
    .sc-live-cta svg {
      width: 1rem;
      height: 1rem;
      flex: 0 0 auto;
    }
    .sc-live-chat {
      display: grid;
      gap: 0.85rem;
      min-height: 16rem;
      align-content: start;
    }
    .sc-live-msg-row {
      display: flex;
      justify-content: flex-start;
    }
    .sc-live-msg-bubble {
      position: relative;
      max-width: min(100%, 32rem);
      padding: 0.72rem 3.6rem 0.82rem 0.95rem;
      border-radius: 1.18rem 1.18rem 1.18rem 0.4rem;
      background: linear-gradient(180deg, #d8f9c8 0%, #ccf5be 100%);
      color: #14532d;
      box-shadow: 0 10px 22px -20px rgba(21, 128, 61, 0.36);
    }
    .sc-live-msg-bubble::after {
      content: "";
      position: absolute;
      left: -0.32rem;
      bottom: 0.14rem;
      width: 0.95rem;
      height: 0.95rem;
      background: #cff6c1;
      clip-path: polygon(100% 0, 0 62%, 100% 100%);
      border-bottom-left-radius: 0.28rem;
    }
    .sc-live-msg-meta {
      display: flex;
      align-items: center;
      gap: 0.45rem;
      margin-bottom: 0.32rem;
      color: #166534;
      font-size: 0.69rem;
      font-weight: 700;
      letter-spacing: 0.02em;
    }
    .sc-live-msg-meta svg {
      width: 0.88rem;
      height: 0.88rem;
      flex: 0 0 auto;
    }
    .sc-live-msg-sep {
      opacity: 0.72;
    }
    .sc-live-msg-title {
      margin: 0 0 0.3rem;
      font-size: 0.84rem;
      font-weight: 700;
      line-height: 1.25;
      color: #14532d;
    }
    .sc-live-msg-body {
      margin: 0;
      font-size: 0.88rem;
      line-height: 1.45;
      color: #14532d;
      white-space: pre-line;
    }
    .sc-live-msg-time {
      position: absolute;
      right: 0.82rem;
      bottom: 0.52rem;
      color: rgba(22, 101, 52, 0.72);
      font-size: 0.71rem;
      line-height: 1;
      white-space: nowrap;
    }
    .sc-live-empty .sc-live-msg-bubble {
      background: linear-gradient(180deg, #d8f9c8 0%, #ccf5be 100%);
      color: #14532d;
    }
    .sc-live-empty .sc-live-msg-bubble::after {
      background: #ccf5be;
    }
    .sc-live-future {
      display: grid;
      gap: 1rem;
      min-height: 16rem;
      align-content: start;
      padding: 1.15rem;
      border-radius: 1.7rem;
      background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
      border: 1px solid #dbe4ef;
    }
    .sc-live-future-card {
      padding: 1rem 1.05rem;
      border-radius: 1.15rem;
      background: #ffffff;
      border: 1px solid #e2e8f0;
    }
    .sc-live-future-card p {
      margin: 0;
      color: #475569;
      font-size: 0.9rem;
      line-height: 1.5;
    }
    .sc-live-future-card strong {
      display: block;
      margin-bottom: 0.35rem;
      color: #0f172a;
      font-size: 0.9rem;
    }
    .sc-doc-empty { font-size: 0.88rem; color: #6e6e73; }
    .sc-empty-state {
      width: min(100%, 34rem);
      margin: 1.25rem auto 0;
      display: grid;
      justify-items: center;
      text-align: center;
      gap: 0.9rem;
      padding: 1.4rem 1rem 0.4rem;
    }
    .sc-empty-state-icon {
      width: 5.2rem;
      height: 5.2rem;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: rgba(47, 138, 208, 0.12);
      color: #2f8ad0;
    }
    .sc-empty-state-icon svg {
      width: 2rem;
      height: 2rem;
      display: block;
    }
    .sc-empty-state-title {
      margin: 0;
      color: #0f172a;
      font-size: 1rem;
      font-weight: 700;
      line-height: 1.2;
    }
    .sc-empty-state-copy {
      margin: 0;
      color: #64748b;
      font-size: 0.92rem;
      line-height: 1.55;
      max-width: 30rem;
    }
    .sc-empty-state-compact {
      padding-top: 1.35rem;
    }
    .sc-empty-state-compact .sc-empty-state-icon {
      width: 4.2rem;
      height: 4.2rem;
      border-radius: 1.25rem;
    }
    .sc-empty-state-compact .sc-empty-state-icon svg {
      width: 1.55rem;
      height: 1.55rem;
    }
    .sc-empty-state-compact .sc-empty-state-title {
      font-size: 0.92rem;
    }
    .sc-empty-state-compact .sc-empty-state-copy {
      font-size: 0.84rem;
      max-width: 24rem;
    }
    /* ── Empty-state canónico del evento (estilo Apple: icono azul centrado) ── */
    .ev-empty {
      width: min(100%, 32rem);
      margin: 1.25rem auto;
      display: grid;
      justify-items: center;
      text-align: center;
      gap: 0.85rem;
      padding: 1.75rem 1rem;
    }
    .ev-empty-icon {
      width: 4.75rem;
      height: 4.75rem;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: rgba(47, 138, 208, 0.12);
      color: #2f8ad0;
    }
    .ev-empty-icon svg {
      width: 2.05rem;
      height: 2.05rem;
      display: block;
    }
    .ev-empty-title {
      margin: 0;
      color: #0f172a;
      font-size: 1.02rem;
      font-weight: 700;
      line-height: 1.2;
    }
    .ev-empty-copy {
      margin: 0;
      color: #64748b;
      font-size: 0.92rem;
      line-height: 1.55;
      max-width: 28rem;
    }
    .ev-empty-compact {
      padding: 1.35rem 1rem;
      gap: 0.7rem;
    }
    .ev-empty-compact .ev-empty-icon {
      width: 3.9rem;
      height: 3.9rem;
    }
    .ev-empty-compact .ev-empty-icon svg { width: 1.7rem; height: 1.7rem; }
    .ev-empty-compact .ev-empty-title { font-size: 0.95rem; }
    .ev-empty-compact .ev-empty-copy { font-size: 0.85rem; }
    /* Empty de "Top noticias": ocupar las dos columnas para quedar centrado */
    .event-stories-grid > .ev-empty { grid-column: 1 / -1; }
    /* Chat del organizador embebido en la tarjeta "Directo" (fallback sin señales) */
    .elb-chat-row {
      background: #f6f8fb;
      border-radius: 0.85rem;
      padding: 0.75rem 0.9rem;
      display: grid;
      gap: 0.25rem;
    }
    .elb-chat-meta {
      display: flex; align-items: center; gap: 0.4rem;
      font-size: 0.72rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase;
      color: #2f8ad0;
    }
    .elb-chat-meta svg { width: 0.95rem; height: 0.95rem; flex-shrink: 0; }
    .elb-chat-meta time { margin-left: auto; color: #94a3b8; font-weight: 600; letter-spacing: 0; text-transform: none; }
    .elb-chat-title { margin: 0; font-size: 0.92rem; font-weight: 800; color: #0f172a; line-height: 1.3; }
    .elb-chat-body { margin: 0; font-size: 0.86rem; color: #475569; line-height: 1.45; }

    /* ── Meteo accordion section ──────────────────────── */
    .event-meteo-section {
      padding: 2rem 0 2.4rem;
      background: #fff;
    }


    /* ── Meteo del evento ─────────────────────────────────
       Sobria y de una pieza: una tarjeta blanca sobre fondo claro, tipografía
       tabular para que los números no bailen y el color de acento del club como
       único punto de color. Todo lo que se pinta viene del endpoint del evento;
       si un dato falta se queda un guion, nunca un valor inventado. */
    .mx-panel {
      --mx-ink: #0f172a;
      --mx-muted: #64748b;
      --mx-line: #e4e9f0;
      display: grid;
      gap: clamp(1.1rem, 2vw, 1.6rem);
      padding: clamp(1.3rem, 2.6vw, 2.2rem);
      border: 1px solid var(--mx-line);
      border-radius: 1.4rem;
      background: #fff;
      color: var(--mx-ink);
      box-shadow: 0 24px 60px -48px rgba(15, 23, 42, .55);
    }
    .mx-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 1.2rem;
      flex-wrap: wrap;
      padding-bottom: clamp(.9rem, 1.6vw, 1.3rem);
      border-bottom: 1px solid var(--mx-line);
    }
    .mx-kicker {
      margin: 0;
      font-size: .68rem;
      font-weight: 800;
      letter-spacing: .16em;
      text-transform: uppercase;
      color: var(--event-accent, #0284c7);
    }
    .mx-place {
      display: flex;
      align-items: center;
      gap: .45rem;
      margin: .3rem 0 0;
      font-size: clamp(1.25rem, 2.2vw, 1.7rem);
      font-weight: 700;
      letter-spacing: -.02em;
      line-height: 1.15;
    }
    .mx-place svg { width: 1.15rem; height: 1.15rem; color: var(--event-accent, #0284c7); flex-shrink: 0; }
    .mx-range { margin: .3rem 0 0; font-size: .88rem; color: var(--mx-muted); }
    .mx-head-side { display: grid; justify-items: end; gap: .6rem; }
    .mx-source { margin: 0; font-size: .76rem; color: #94a3b8; text-align: right; }
    .mx-source a { color: var(--event-accent, #0284c7); font-weight: 700; text-decoration: none; }
    .mx-source a:hover { text-decoration: underline; }
    .mx-updated { display: block; }
    .mx-report {
      display: inline-flex;
      align-items: center;
      gap: .45rem;
      padding: .5rem 1rem;
      border-radius: 999px;
      border: 1px solid var(--mx-line);
      background: #f8fafc;
      color: var(--mx-ink);
      font-size: .8rem;
      font-weight: 700;
      text-decoration: none;
      white-space: nowrap;
      transition: background .16s ease, border-color .16s ease;
    }
    .mx-report:hover { background: #fff; border-color: #cbd5e1; }
    .mx-report svg { width: 1rem; height: 1rem; }
    .mx-state {
      margin: 0;
      padding: 2.6rem 1rem;
      text-align: center;
      color: var(--mx-muted);
      font-size: .92rem;
    }
    .mx-state[hidden], .mx-body[hidden], .mx-days-block[hidden] { display: none; }
    .mx-body { display: grid; gap: clamp(1.1rem, 2vw, 1.5rem); }
    @media (min-width: 1024px) {
      .mx-body { grid-template-columns: minmax(17rem, .62fr) minmax(0, 1.38fr); }
      .mx-days-block { grid-column: 1 / -1; }
    }

    /* Tarjeta de condiciones */
    .mx-now {
      display: grid;
      gap: 1.1rem;
      align-content: start;
      padding: clamp(1.1rem, 2vw, 1.5rem);
      border-radius: 1.15rem;
      background: linear-gradient(180deg, color-mix(in srgb, var(--event-accent, #0284c7) 7%, #ffffff), #fff);
      border: 1px solid var(--mx-line);
    }
    .mx-now-top { display: flex; align-items: center; gap: .9rem; }
    .mx-now-glyph { display: inline-flex; width: 2.6rem; height: 2.6rem; color: var(--event-accent, #0284c7); flex-shrink: 0; }
    .mx-now-glyph svg { width: 100%; height: 100%; }
    .mx-now-headline { min-width: 0; flex: 1; }
    .mx-now-label { margin: 0; font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--mx-muted); }
    .mx-now-wind { display: flex; align-items: baseline; gap: .3rem; margin: .1rem 0 0; }
    .mx-now-wind strong { font-size: clamp(2.4rem, 5vw, 3.2rem); font-weight: 700; letter-spacing: -.05em; line-height: 1; font-variant-numeric: tabular-nums; }
    .mx-now-wind span { font-size: 1rem; font-weight: 700; color: var(--mx-muted); }
    .mx-now-note { margin: .25rem 0 0; font-size: .8rem; color: var(--mx-muted); }
    .mx-rose { position: relative; width: 5.4rem; height: 5.4rem; flex-shrink: 0; color: var(--event-accent, #0284c7); }
    .mx-rose svg { width: 100%; height: 100%; }
    .mx-rose [data-mx-rose-needle] { transition: transform .45s ease; }
    .mx-rose-value {
      position: absolute; inset: auto 0 -.1rem; display: grid; justify-items: center;
      font-variant-numeric: tabular-nums;
    }
    .mx-rose-value strong { font-size: .82rem; font-weight: 800; color: var(--mx-ink); }
    .mx-rose-value small { font-size: .68rem; font-weight: 700; color: var(--mx-muted); }
    .mx-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin: 0; }
    .mx-metric {
      padding: .6rem .7rem;
      border-radius: .75rem;
      background: #fff;
      border: 1px solid var(--mx-line);
    }
    .mx-metric dt { font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--mx-muted); }
    .mx-metric dd { margin: .15rem 0 0; font-size: .98rem; font-weight: 700; font-variant-numeric: tabular-nums; }
    .mx-reading { margin: 0; font-size: .85rem; line-height: 1.55; color: #475569; }
    .mx-reading:empty { display: none; }

    /* Gráfica */
    .mx-chart-card {
      display: grid;
      gap: .9rem;
      align-content: start;
      padding: clamp(1.1rem, 2vw, 1.5rem);
      border: 1px solid var(--mx-line);
      border-radius: 1.15rem;
      background: #fff;
      min-width: 0;
    }
    .mx-chart-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
    .mx-tabs { display: inline-flex; gap: .2rem; padding: .22rem; border-radius: 999px; background: #f1f5f9; }
    .mx-tab {
      appearance: none; border: 0; cursor: pointer;
      padding: .4rem .95rem;
      border-radius: 999px;
      background: transparent;
      color: var(--mx-muted);
      font-size: .8rem;
      font-weight: 700;
      transition: background .16s ease, color .16s ease;
    }
    .mx-tab:hover { color: var(--mx-ink); }
    .mx-tab.is-active { background: var(--mx-ink); color: #fff; }
    .mx-tab[hidden] { display: none; }
    .mx-chart-readout { margin: 0; font-size: .82rem; color: var(--mx-muted); font-variant-numeric: tabular-nums; }
    .mx-chart-readout b { color: var(--mx-ink); font-size: .95rem; }
    .mx-chart { position: relative; padding-left: 2.3rem; }
    .mx-chart svg { display: block; width: 100%; height: clamp(9rem, 22vw, 13rem); overflow: visible; }
    .mx-chart-scale {
      position: absolute; left: 0; top: 0; bottom: 1.9rem;
      display: flex; flex-direction: column; justify-content: space-between;
      font-size: .68rem; font-weight: 700; color: #a5b1c2; font-variant-numeric: tabular-nums;
    }
    .mx-chart-axis { position: relative; height: 1.9rem; margin-top: .35rem; }
    .mx-chart-axis span {
      position: absolute; top: 0; transform: translateX(-50%);
      display: grid; justify-items: center; white-space: nowrap;
      font-size: .68rem; font-weight: 700; color: var(--mx-muted); font-variant-numeric: tabular-nums;
    }
    .mx-chart-axis small { font-size: .62rem; font-weight: 600; color: #a5b1c2; }
    .mx-chart-foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
    .mx-legend { font-size: .74rem; color: #94a3b8; font-weight: 600; }
    .mx-hourly-link {
      appearance: none; border: 0; cursor: pointer;
      display: inline-flex; align-items: center; gap: .35rem;
      padding: 0; background: transparent;
      color: var(--event-accent, #0284c7);
      font-size: .84rem; font-weight: 800;
    }
    .mx-hourly-link svg { width: .95rem; height: .95rem; }
    .mx-hourly-link:hover { text-decoration: underline; }

    /* Días de regata */
    .mx-days-title { margin: 0 0 .7rem; font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--mx-muted); }
    .mx-days { display: grid; grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); gap: .6rem; }
    .mx-day {
      display: grid; gap: .35rem; justify-items: center; text-align: center;
      padding: .9rem .6rem;
      border: 1px solid var(--mx-line);
      border-radius: 1rem;
      background: #fff;
    }
    .mx-day-date { margin: 0; display: grid; justify-items: center; }
    .mx-day-date strong { font-size: .82rem; font-weight: 800; text-transform: capitalize; }
    .mx-day-date span { font-size: .7rem; color: var(--mx-muted); }
    .mx-day-glyph { display: inline-flex; width: 2rem; height: 2rem; color: var(--event-accent, #0284c7); }
    .mx-day-glyph svg { width: 100%; height: 100%; }
    .mx-day-wind { display: inline-flex; align-items: baseline; gap: .25rem; margin: 0; font-variant-numeric: tabular-nums; }
    .mx-day-wind strong { font-size: 1.05rem; font-weight: 800; }
    .mx-day-wind span { font-size: .72rem; font-weight: 700; color: var(--mx-muted); }
    .mx-day-wind em { font-size: .72rem; font-style: normal; font-weight: 700; color: #94a3b8; }
    .mx-day-arrow { width: .85rem; height: .85rem; color: var(--event-accent, #0284c7); align-self: center; }
    .mx-day-temp { margin: 0; font-size: .84rem; font-weight: 700; font-variant-numeric: tabular-nums; }
    .mx-day-temp span { margin-left: .3rem; color: #94a3b8; font-weight: 600; }
    .mx-day-extra { margin: 0; font-size: .72rem; color: var(--mx-muted); font-variant-numeric: tabular-nums; }
    .mx-unit { font-size: .72em; color: #94a3b8; font-weight: 600; }
    .mx-dir-cell { display: inline-flex; align-items: center; gap: .3rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
    .mx-dir-cell svg { width: .7rem; height: .7rem; color: var(--event-accent, #0284c7); }
    @media (max-width: 640px) {
      .mx-head-side { justify-items: start; }
      .mx-source { text-align: left; }
      .mx-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }

    /* Color por intensidad. La estética no cambia — mismas tarjetas, misma
       tipografía —, pero el dato se lee de un vistazo: flojo, navegable,
       fuerte o pasado de vueltas. Los tonos son los mismos en las métricas y
       en las tarjetas de día. */
    .mx-panel {
      --mx-calm: #0f766e;   --mx-calm-bg: #ecfdf5;
      --mx-soft: #0369a1;   --mx-soft-bg: #eff6ff;
      --mx-good: #047857;   --mx-good-bg: #e8f8ef;
      --mx-strong: #b45309; --mx-strong-bg: #fff7ed;
      --mx-hard: #be123c;   --mx-hard-bg: #fff1f2;
      --mx-warm: #c2410c;   --mx-warm-bg: #fff7ed;
      --mx-sea: #0e7490;    --mx-sea-bg: #ecfeff;
      --mx-wet: #1d4ed8;    --mx-wet-bg: #eef2ff;
    }
    .mx-metric.is-calm   { background: var(--mx-calm-bg);   border-color: color-mix(in srgb, var(--mx-calm) 22%, #fff); }
    .mx-metric.is-soft   { background: var(--mx-soft-bg);   border-color: color-mix(in srgb, var(--mx-soft) 20%, #fff); }
    .mx-metric.is-good   { background: var(--mx-good-bg);   border-color: color-mix(in srgb, var(--mx-good) 22%, #fff); }
    .mx-metric.is-strong { background: var(--mx-strong-bg); border-color: color-mix(in srgb, var(--mx-strong) 24%, #fff); }
    .mx-metric.is-hard   { background: var(--mx-hard-bg);   border-color: color-mix(in srgb, var(--mx-hard) 24%, #fff); }
    .mx-metric.is-warm   { background: var(--mx-warm-bg);   border-color: color-mix(in srgb, var(--mx-warm) 20%, #fff); }
    .mx-metric.is-sea    { background: var(--mx-sea-bg);    border-color: color-mix(in srgb, var(--mx-sea) 20%, #fff); }
    .mx-metric.is-wet    { background: var(--mx-wet-bg);    border-color: color-mix(in srgb, var(--mx-wet) 20%, #fff); }
    .mx-metric.is-calm dd   { color: var(--mx-calm); }
    .mx-metric.is-soft dd   { color: var(--mx-soft); }
    .mx-metric.is-good dd   { color: var(--mx-good); }
    .mx-metric.is-strong dd { color: var(--mx-strong); }
    .mx-metric.is-hard dd   { color: var(--mx-hard); }
    .mx-metric.is-warm dd   { color: var(--mx-warm); }
    .mx-metric.is-sea dd    { color: var(--mx-sea); }
    .mx-metric.is-wet dd    { color: var(--mx-wet); }

    /* La tarjeta grande respira el mismo color que el viento que anuncia. */
    .mx-now[data-tone="calm"]   { --mx-tone: var(--mx-calm); }
    .mx-now[data-tone="soft"]   { --mx-tone: var(--mx-soft); }
    .mx-now[data-tone="good"]   { --mx-tone: var(--mx-good); }
    .mx-now[data-tone="strong"] { --mx-tone: var(--mx-strong); }
    .mx-now[data-tone="hard"]   { --mx-tone: var(--mx-hard); }
    .mx-now[data-tone] {
      background: linear-gradient(180deg, color-mix(in srgb, var(--mx-tone) 10%, #ffffff), #fff);
      border-color: color-mix(in srgb, var(--mx-tone) 20%, #ffffff);
    }
    .mx-now[data-tone] .mx-now-wind strong { color: var(--mx-tone); }
    .mx-now[data-tone] .mx-now-glyph,
    .mx-now[data-tone] .mx-rose { color: var(--mx-tone); }

    .mx-day[data-tone="calm"]   { --mx-tone: var(--mx-calm); }
    .mx-day[data-tone="soft"]   { --mx-tone: var(--mx-soft); }
    .mx-day[data-tone="good"]   { --mx-tone: var(--mx-good); }
    .mx-day[data-tone="strong"] { --mx-tone: var(--mx-strong); }
    .mx-day[data-tone="hard"]   { --mx-tone: var(--mx-hard); }
    .mx-day[data-tone] {
      border-top: 3px solid var(--mx-tone);
      background: linear-gradient(180deg, color-mix(in srgb, var(--mx-tone) 7%, #ffffff), #fff);
    }
    .mx-day[data-tone] .mx-day-wind strong,
    .mx-day[data-tone] .mx-day-glyph,
    .mx-day[data-tone] .mx-day-arrow { color: var(--mx-tone); }
    .mx-day-temp { color: var(--mx-warm); }
    .mx-day-extra { color: var(--mx-sea); }

    /* Distintivo de origen del dato */
    .mx-badge {
      display: inline-flex;
      align-items: center;
      margin-top: .5rem;
      padding: .2rem .65rem;
      border-radius: 999px;
      background: color-mix(in srgb, var(--event-accent, #0284c7) 12%, #ffffff);
      color: color-mix(in srgb, var(--event-accent, #0284c7) 62%, #0b1220);
      font-size: .7rem;
      font-weight: 800;
      letter-spacing: .04em;
      text-transform: uppercase;
    }
    .mx-badge.is-climate { background: #fef3c7; color: #92400e; }
    .mx-badge[hidden] { display: none; }
    .mx-chart-card[hidden] { display: none; }
    .mx-report[hidden] { display: none; }

    /* Hourly table */
    .ema-hourly-scroll {
      overflow-x: auto;
      padding-bottom: 1.2rem;
      -webkit-overflow-scrolling: touch;
    }
    .ema-hourly-table {
      width: 100%;
      min-width: 32rem;
      border-collapse: collapse;
      font-size: 0.82rem;
      color: #1d1d1f;
    }
    .ema-hourly-table th {
      text-align: left;
      font-weight: 600;
      font-size: 0.72rem;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      color: #86868b;
      padding: 0.5rem 0.6rem;
      border-bottom: 1px solid rgba(0,0,0,0.08);
    }
    .ema-hourly-table th:not(:first-child) {
      text-align: right;
    }
    .ema-hourly-table td {
      padding: 0.45rem 0.6rem;
      border-bottom: 1px solid rgba(0,0,0,0.05);
      font-variant-numeric: tabular-nums;
    }
    .ema-hourly-table td:not(:first-child) {
      text-align: right;
    }



    /* ── Hourly modal ── */
    .ema-modal {
      position: fixed;
      inset: 0;
      z-index: 9999;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .ema-modal[hidden] { display: none; }
    .ema-modal-backdrop {
      position: absolute;
      inset: 0;
      background: rgba(0,0,0,0.45);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
    }
    .ema-modal-sheet {
      position: relative;
      width: 92%;
      max-width: 52rem;
      max-height: 85vh;
      background: #fff;
      border-radius: 1.5rem;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      animation: emaSheetIn 0.28s ease;
    }
    @keyframes emaSheetIn {
      from { opacity: 0; transform: translateY(1.5rem) scale(0.97); }
      to { opacity: 1; transform: none; }
    }
    .ema-modal-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 1.4rem 1.8rem;
      border-bottom: 1px solid rgba(0,0,0,0.06);
      flex-shrink: 0;
    }
    .ema-modal-title {
      font-size: 1.2rem;
      font-weight: 700;
      letter-spacing: -0.03em;
      color: #1d1d1f;
      margin: 0;
    }
    .ema-modal-close {
      width: 2rem;
      height: 2rem;
      border: 0;
      background: #f5f5f7;
      border-radius: 50%;
      display: grid;
      place-items: center;
      cursor: pointer;
      color: #1d1d1f;
      transition: background 0.15s;
    }
    .ema-modal-close:hover { background: #e8e8ed; }
    .ema-modal-close svg { width: 1rem; height: 1rem; }
    .ema-modal-body {
      overflow-y: auto;
      padding: 1.2rem 1.8rem 2rem;
      -webkit-overflow-scrolling: touch;
    }
    .ema-modal-body .ema-hourly-table {
      min-width: 100%;
    }

    @media (max-width: 768px) {
      .ema-modal-sheet {
        width: 100%;
        max-width: none;
        max-height: 90vh;
        border-radius: 1.25rem 1.25rem 0 0;
        position: absolute;
        bottom: 0;
        animation: emaSheetUp 0.32s ease;
      }
      @keyframes emaSheetUp {
        from { transform: translateY(100%); }
        to { transform: none; }
      }
    }


    /* ── News scroll section ─────────────────────────── */
    .evn-section {
      position: relative;
      width: 100vw;
      left: 50%;
      transform: translateX(-50%);
      padding: 2rem 0 2.4rem;
      background: #fff;
    }
    .evn-inner {
      max-width: 100%;
    }
    .evn-heading {
      font-size: clamp(2rem, 4vw, 3.2rem);
      font-weight: 700;
      letter-spacing: -0.06em;
      line-height: 1;
      color: #1d1d1f;
      margin: 0 0 1.6rem;
      padding: 0 max(1.5rem, 8vw);
    }
    .evn-scroll-wrap {
      position: relative;
    }
    .evn-scroll-track {
      display: flex;
      gap: 1.25rem;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scroll-padding-left: max(1.5rem, 8vw);
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      padding: 0.45rem 0 1.1rem max(1.5rem, 8vw);
    }
    .evn-scroll-track::-webkit-scrollbar { display: none; }
    .evn-arrow {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      z-index: 5;
      width: 3rem;
      height: 3rem;
      border-radius: 50%;
      border: 0;
      background: rgba(255,255,255,0.92);
      backdrop-filter: blur(8px);
      box-shadow: 0 4px 14px -4px rgba(0,0,0,0.18);
      font-size: 1.6rem;
      color: #1d1d1f;
      cursor: pointer;
      display: grid;
      place-items: center;
      transition: opacity 0.2s;
    }
    .evn-arrow.is-hidden { opacity: 0; pointer-events: none; }
    .evn-arrow-left { left: 0.8rem; }
    .evn-arrow-right { right: 0.8rem; }

    /* Cards shared */
    .evn-card {
      flex-shrink: 0;
      scroll-snap-align: start;
      width: 22rem;
      min-height: 32rem;
      border-radius: 2rem;
      overflow: hidden;
      position: relative;
      border: 0;
      text-align: left;
      cursor: pointer;
    }

    /* Cover card */
    .evn-cover-card {
      --evn-tile-color: #ea580c;
      background: #f5f5f7;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      box-shadow:
        0 34px 64px -40px rgba(15, 23, 42, 0.18),
        0 20px 28px -28px rgba(15, 23, 42, 0.14),
        inset 0 1px 0 rgba(255,255,255,0.9);
    }
    .evn-cover-card-sponsors {
      --evn-tile-color: #0f766e;
    }
    .evn-cover-card::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 0;
      background:
        radial-gradient(circle at 76% 82%, rgba(251,113,133,0.18) 0%, transparent 23%),
        radial-gradient(circle at 22% 72%, rgba(249,115,22,0.1) 0%, transparent 19%),
        linear-gradient(180deg, #f6f7fb 0%, #eef1f7 100%);
    }
    .evn-cover-body {
      position: relative;
      z-index: 3;
      padding: 2.15rem 2rem 1.5rem;
    }
    .evn-cover-label {
      font-size: 0.96rem;
      font-weight: 760;
      color: #1f2329;
      letter-spacing: -0.03em;
    }
    .evn-cover-title {
      max-width: 14.5rem;
      margin-top: 0.9rem;
      font-size: clamp(2.5rem, 3vw, 3.55rem);
      line-height: 0.98;
      letter-spacing: -0.06em;
      font-weight: 700;
      color: #1f2329;
    }
    .evn-cover-subtitle {
      max-width: 15.5rem;
      margin-top: 1rem;
      color: #5f6673;
      font-size: 0.98rem;
      line-height: 1.14;
      font-weight: 620;
    }
    .evn-cover-cluster {
      position: absolute;
      left: 0; right: 0;
      top: 11.2rem; bottom: 1.8rem;
      pointer-events: none;
      z-index: 2;
    }
    .evn-tile {
      position: absolute;
      display: grid;
      place-items: center;
      color: #1f2329;
      box-shadow:
        0 28px 42px -34px rgba(15,23,42,0.22),
        inset 0 1px 0 rgba(255,255,255,0.92);
    }
    .evn-tile svg {
      width: 46%; height: 46%;
      display: block;
    }
    .evn-tile svg * {
      stroke: currentColor; fill: none;
      stroke-width: 2.15; stroke-linecap: round; stroke-linejoin: round;
    }
    .evn-tile-main {
      left: 54%; top: 18%;
      width: 11.3rem; height: 11.3rem;
      transform: translateX(-50%);
      border-radius: 2.35rem;
      color: #fff;
      background: linear-gradient(180deg, color-mix(in srgb, var(--evn-tile-color) 90%, #111827 10%) 0%, color-mix(in srgb, var(--evn-tile-color) 72%, #111827 28%) 100%);
      box-shadow: 0 30px 52px -32px rgba(15,23,42,0.3), 0 18px 30px -24px rgba(15,23,42,0.22);
    }
    .evn-tile-soft {
      background: linear-gradient(180deg, rgba(255,255,255,0.84) 0%, rgba(255,255,255,0.62) 100%);
      border: 1px solid rgba(255,255,255,0.78);
      backdrop-filter: blur(10px);
    }
    .evn-tile-left {
      left: 15%; top: 24%;
      width: 7rem; height: 7rem;
      border-radius: 1.95rem;
      transform: rotate(-3deg);
    }
    .evn-tile-right {
      right: 19%; top: 45%;
      width: 5.4rem; height: 5.4rem;
      border-radius: 1.55rem;
    }
    .evn-tile-bottom {
      left: 43%; top: 70%;
      width: 5.8rem; height: 5.8rem;
      border-radius: 1.7rem;
    }

    /* News card */
    .evn-news-card {
      background: #1d1d1f;
      display: flex;
      padding: 0;
    }
    .evn-news-img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .evn-news-placeholder {
      position: absolute;
      inset: 0;
      background: linear-gradient(135deg, #2c2c2e, #3a3a3c);
    }
    .evn-news-scrim {
      position: absolute;
      inset: 0;
      background: linear-gradient(0deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.1) 45%, transparent 65%);
      z-index: 1;
    }
    .evn-news-text {
      position: absolute;
      bottom: 0; left: 0; right: 0;
      z-index: 2;
      padding: 1.5rem;
    }
    .evn-news-title {
      font-size: 1.35rem;
      font-weight: 700;
      line-height: 1.15;
      letter-spacing: -0.03em;
      color: #fff;
      margin: 0;
    }
    .evn-news-date {
      display: block;
      margin-top: 0.35rem;
      font-size: 0.78rem;
      color: rgba(255,255,255,0.65);
      font-weight: 500;
    }
    .evn-sponsor-card {
      background: #111827;
      display: flex;
      padding: 0;
    }
    .evn-sponsor-name {
      font-size: 1.35rem;
      font-weight: 700;
      line-height: 1.1;
      letter-spacing: -0.03em;
      color: #fff;
      margin: 0;
    }
    .evn-sponsor-meta {
      display: block;
      margin-top: 0.35rem;
      font-size: 0.78rem;
      color: rgba(255,255,255,0.68);
      font-weight: 600;
      letter-spacing: 0.04em;
      text-transform: uppercase;
    }
    .evn-empty-card {
      background: linear-gradient(180deg, #f6f7fb 0%, #eef1f7 100%);
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow:
        0 34px 64px -40px rgba(15, 23, 42, 0.18),
        0 20px 28px -28px rgba(15, 23, 42, 0.14),
        inset 0 1px 0 rgba(255,255,255,0.9);
    }
    .evn-empty-inner {
      width: 100%;
      padding: 2rem;
      text-align: center;
      color: #374151;
    }
    .evn-empty-icon {
      width: 4.75rem;
      height: 4.75rem;
      margin: 0 auto 1rem;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: rgba(47, 138, 208, 0.12);
      color: #2f8ad0;
    }
    .evn-empty-icon svg { width: 2.05rem; height: 2.05rem; display: block; }
    .evn-empty-title {
      margin: 0;
      font-size: 1.35rem;
      line-height: 1.1;
      letter-spacing: -0.03em;
      font-weight: 700;
      color: #1f2937;
    }
    .evn-empty-subtitle {
      margin: 0.7rem auto 0;
      max-width: 16rem;
      font-size: 0.92rem;
      line-height: 1.45;
      color: #6b7280;
    }

    /* News modal */
    .evn-modal {
      position: fixed;
      inset: 0;
      z-index: 9999;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .evn-modal[hidden] { display: none; }
    .evn-modal-backdrop {
      position: absolute;
      inset: 0;
      background: rgba(0,0,0,0.45);
      backdrop-filter: blur(6px);
    }
    .evn-modal-sheet {
      position: relative;
      width: 92%;
      max-width: 44rem;
      max-height: 85vh;
      background: #fff;
      border-radius: 1.5rem;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      animation: emaSheetIn 0.28s ease;
    }
    .evn-modal-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 1.4rem 1.8rem;
      border-bottom: 1px solid rgba(0,0,0,0.06);
      flex-shrink: 0;
    }
    .evn-modal-title {
      font-size: 1.2rem;
      font-weight: 700;
      letter-spacing: -0.03em;
      color: #1d1d1f;
      margin: 0;
    }
    .evn-modal-close {
      width: 2rem; height: 2rem;
      border: 0;
      background: #f5f5f7;
      border-radius: 50%;
      display: grid;
      place-items: center;
      cursor: pointer;
      color: #1d1d1f;
    }
    .evn-modal-close:hover { background: #e8e8ed; }
    .evn-modal-close svg { width: 1rem; height: 1rem; }
    .evn-modal-body {
      overflow-y: auto;
      padding: 1.5rem 1.8rem 2rem;
      -webkit-overflow-scrolling: touch;
    }
    .evn-modal-img {
      width: 100%;
      border-radius: 1rem;
      margin-bottom: 1.2rem;
    }
    .evn-modal-img[hidden] { display: none; }
    .evn-modal-text {
      font-size: 1rem;
      line-height: 1.6;
      color: #1d1d1f;
      white-space: pre-wrap;
    }
    .evn-modal-date {
      display: block;
      margin-top: 1rem;
      font-size: 0.78rem;
      color: #86868b;
    }

    @media (max-width: 768px) {
      .evn-card { width: 17rem; min-height: 26rem; }
      .evn-modal-sheet {
        width: 100%; max-width: none;
        max-height: 90vh;
        border-radius: 1.25rem 1.25rem 0 0;
        position: absolute; bottom: 0;
        animation: emaSheetUp 0.32s ease;
      }
    }

    .event-detail-main {
      min-width: 0;
      order: 1;
      background: #ffffff;
    }
    .event-detail-side {
      position: sticky;
      top: 84px;
      align-self: start;
      order: 2;
    }
    .event-detail-side-card {
      background: #fff;
      border: 0;
      border-radius: 0;
      box-shadow: none;
      padding: 0.22rem 0.7rem;
      display: grid;
      align-content: start;
    }
    .event-side-extra-card {
      margin-top: 0.75rem;
      background: #fff;
      border: 0;
      border-radius: 0;
      box-shadow: none;
      padding: 0.9rem;
    }
    .event-side-club-link {
      display: flex;
      align-items: center;
      gap: 0.7rem;
      text-decoration: none;
    }
    .event-side-club-text {
      min-width: 0;
      display: block;
    }
    .event-side-club-avatar {
      width: 2.9rem;
      height: 2.9rem;
      border-radius: 999px;
      overflow: hidden;
      border: 1px solid #e2e8f0;
      background: #e2e8f0;
      display: grid;
      place-items: center;
      font-size: 0.82rem;
      font-weight: 700;
      color: #475569;
      flex: 0 0 auto;
    }
    .event-side-club-avatar img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    .event-side-club-name {
      display: block;
      font-size: 0.92rem;
      line-height: 1.2;
      color: #111827;
      font-weight: 650;
    }
    .event-side-club-role {
      display: block;
      margin-top: 0.2rem;
      font-size: 0.77rem;
      line-height: 1.2;
      color: #4b5563;
      white-space: normal;
    }
    .sailiq-strava-card {
      background: #ffffff;
      border: 0;
      border-radius: 0;
    }
    .sailiq-sessions-cta-card {
      padding: 0.72rem 0.78rem 0.84rem;
      text-align: center;
    }
    .sailiq-motivation-cta-title {
      margin: 0.66rem 0 0;
      font-size: 0.69rem;
      line-height: 1.2;
      letter-spacing: 0.08em;
      color: #64748b;
      font-weight: 600;
      text-transform: uppercase;
      text-align: center;
    }
    .sailiq-motivation-appstore {
      margin: 0.58rem auto 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.62rem;
      border-radius: 1rem;
      background: #70717b;
      color: #f8fafc;
      border: 1px solid rgba(255, 255, 255, 0.2);
      padding: 0.58rem 0.92rem 0.58rem 0.66rem;
      box-shadow: 0 14px 24px -24px rgba(15, 23, 42, 0.9);
      transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
      text-decoration: none;
    }
    .sailiq-motivation-appstore:hover {
      background: #7d7e89;
      border-color: rgba(255, 255, 255, 0.28);
      transform: translateY(-1px);
      box-shadow: 0 18px 28px -22px rgba(15, 23, 42, 0.95);
    }
    .sailiq-motivation-appstore-logo {
      width: 1.88rem;
      height: 1.88rem;
      border-radius: 0.45rem;
      display: block;
      object-fit: cover;
    }
    .sailiq-motivation-appstore-copy {
      display: inline-flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 0.14rem;
    }
    .sailiq-motivation-appstore-copy small {
      font-size: 0.54rem;
      line-height: 1;
      letter-spacing: 0.08em;
      opacity: 0.82;
    }
    .sailiq-motivation-appstore-copy strong {
      font-size: 1rem;
      line-height: 1;
      font-weight: 600;
    }
    .event-tab-btn {
      display: grid;
      grid-template-columns: 1.55rem 1fr;
      gap: 0.66rem;
      align-items: start;
      padding: 0.62rem 0.15rem;
      border-bottom: 1px solid #eceff3;
      font-size: 0.94rem;
      line-height: 1.2;
      color: #111827;
      font-weight: 650;
      text-align: left;
      background: transparent;
      width: 100%;
    }
    .event-tab-btn:last-child {
      border-bottom: 0;
    }
    .event-tab-btn small {
      display: block;
      margin-top: 0.2rem;
      font-size: 0.79rem;
      line-height: 1.34;
      color: #4b5563;
      font-weight: 500;
    }
    .event-tab-icon {
      width: 1.55rem;
      height: 1.55rem;
      color: #111827;
    }
    .event-tab-icon svg {
      width: 100%;
      height: 100%;
      display: block;
    }
    .event-tab-btn:hover,
    .event-tab-btn.active {
      background: #f8fafc;
    }
    .event-tab-btn:hover .event-tab-title,
    .event-tab-btn.active .event-tab-title {
      color: #1E90FF;
    }
    .public-series-card {
      border: 1px solid #dbe3ec;
      border-radius: 16px;
      background: #fff;
      overflow: hidden;
    }
    .public-series-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      padding: 1rem 1rem 0.85rem;
      border-bottom: 1px solid #e5e7eb;
    }
    .public-series-badge {
      display: inline-flex;
      align-items: center;
      padding: 0.2rem 0.55rem;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      border: 1px solid #cbd5e1;
      color: #475569;
      background: #f8fafc;
    }
    .public-series-badge.published {
      color: #166534;
      border-color: #bbf7d0;
      background: #f0fdf4;
    }
    .public-series-table {
      min-width: 840px;
      width: 100%;
      border-collapse: collapse;
      font-size: 12px;
      color: #334155;
    }
    .public-series-table th {
      background: #f8fafc;
      color: #64748b;
      font-size: 11px;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      padding: 0.72rem 0.8rem;
      border-bottom: 1px solid #e5e7eb;
      text-align: left;
      white-space: nowrap;
    }
    .public-series-table td {
      padding: 0.72rem 0.8rem;
      border-bottom: 1px solid #f1f5f9;
      vertical-align: middle;
    }
    .public-series-cell {
      min-width: 68px;
      text-align: center;
      font-variant-numeric: tabular-nums;
    }
    .public-series-cell .discard {
      color: #b91c1c;
      font-weight: 700;
    }
    .public-series-cell .code {
      font-size: 11px;
      font-weight: 700;
      color: #475569;
    }
    .public-series-cell .pts {
      font-size: 12px;
      font-weight: 700;
      color: #0f172a;
    }
    .results-class-tab {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      border-radius: 999px;
      border: 1px solid #cbd5e1;
      background: #fff;
      color: #475569;
      padding: 0.45rem 0.8rem;
      font-size: 12px;
      font-weight: 600;
      transition: background 160ms ease, border-color 160ms ease, color 160ms ease;
    }
    .results-class-tab.active {
      background: #eff6ff;
      border-color: #93c5fd;
      color: #1d4ed8;
    }
    .sc-results-sections {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      padding: 0.28rem;
      border-radius: 999px;
      border: 1px solid #dbe4ef;
      background: #f1f5f9;
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.85);
      margin-bottom: 1rem;
    }
    .sc-results-section-btn {
      min-width: 7.4rem;
      min-height: 2.2rem;
      padding: 0 1rem;
      border: 0;
      border-radius: 999px;
      background: transparent;
      color: #64748b;
      font-size: 0.8rem;
      font-weight: 700;
      transition: background 160ms ease, color 160ms ease, box-shadow 160ms ease;
    }
    .sc-results-section-btn.is-active {
      background: #ffffff;
      color: #0f172a;
      box-shadow: 0 10px 20px -18px rgba(15, 23, 42, 0.42);
    }
    .sc-results-panel.hidden {
      display: none;
    }
    .sc-results-empty {
      padding: 1rem 0;
      color: #64748b;
      font-size: 0.92rem;
    }
    .sc-entry-list {
      display: grid;
      gap: 0.85rem;
    }
    .sc-entry-card {
      border: 1px solid #e2e8f0;
      border-radius: 1.25rem;
      background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
      padding: 1rem 1rem 0.95rem;
      box-shadow: 0 14px 28px -24px rgba(15, 23, 42, 0.18);
    }
    .sc-entry-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 0.75rem;
      margin-bottom: 0.8rem;
    }
    .sc-entry-boat {
      margin: 0;
      color: #0f172a;
      font-size: 0.98rem;
      font-weight: 700;
      line-height: 1.25;
    }
    .sc-entry-meta {
      margin: 0.2rem 0 0;
      color: #64748b;
      font-size: 0.78rem;
    }
    .sc-entry-count {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 2rem;
      min-height: 2rem;
      padding: 0 0.55rem;
      border-radius: 999px;
      background: #eef2ff;
      color: #3730a3;
      font-size: 0.74rem;
      font-weight: 700;
    }
    .sc-entry-members {
      display: flex;
      flex-wrap: wrap;
      gap: 0.55rem;
    }
    .sc-entry-member {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      padding: 0.45rem 0.7rem 0.45rem 0.45rem;
      border-radius: 999px;
      background: #f8fafc;
      border: 1px solid #e2e8f0;
      color: #334155;
      font-size: 0.78rem;
      font-weight: 600;
    }
    .sc-entry-member-avatar {
      width: 1.6rem;
      height: 1.6rem;
      border-radius: 999px;
      overflow: hidden;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: #e2e8f0;
      color: #475569;
      font-size: 0.68rem;
      font-weight: 700;
      flex: 0 0 auto;
    }
    .sc-entry-member-avatar img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    /* Classification sticky-left + scroll layout */
    .pub-clf-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.15rem 0 0.7rem; border-bottom: 1px solid #edf2f7; }
    .pub-clf-head-copy h4 { margin: 0; color: #0f172a; font-size: 0.92rem; font-weight: 800; }
    .pub-clf-head-copy p { margin: 0.2rem 0 0; color: #64748b; font-size: 0.68rem; font-weight: 600; }
    .pub-clf-badge { display: inline-flex; padding: 0.3rem 0.6rem; border-radius: 999px; border: 1px solid #dbe5f0; background: #fff; color: #475569; font-size: 0.62rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }
    .pub-clf-badge.published { color: #166534; border-color: #bbf7d0; background: #f0fdf4; }
    .pub-clf-wrapper { margin-top: 1rem; overflow: hidden; }
    .pub-clf-scroll { overflow-x: auto; overflow-y: visible; -webkit-overflow-scrolling: touch; }
    .pub-clf-table { min-width: max-content; display: flex; flex-direction: column; gap: 10px; isolation: isolate; }
    .pub-clf-row { display: flex; align-items: center; border-radius: 16px; background: #fff; border: 1px solid #eef1f5; box-shadow: 0 1px 2px rgba(15,23,42,.04); transition: box-shadow .18s ease, transform .18s ease; }
    .pub-clf-row:not(.pub-clf-header) { min-height: 108px; }
    .pub-clf-row:hover:not(.pub-clf-header) { box-shadow: 0 12px 28px -18px rgba(15,23,42,.4); transform: translateY(-1px); }
    .pub-clf-header { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; color: #0a0a0d; background: transparent; border: 0; box-shadow: none; }
    .pub-clf-sticky { display: flex; align-items: center; gap: 12px; padding: 18px; position: sticky; left: 0; background: #fff; z-index: 4; flex-shrink: 0; min-width: 450px; }
    .pub-clf-header .pub-clf-sticky { background: #fff; z-index: 5; }
    .pub-clf-row:hover:not(.pub-clf-header) .pub-clf-sticky { background: #fbfcfe; }
    .pub-clf-sticky::after { content: ''; position: absolute; right: -10px; top: 0; bottom: 0; width: 10px; background: linear-gradient(to right, rgba(15,23,42,.14), transparent); pointer-events: none; }
    .pub-clf-scrollable { display: flex; align-items: center; gap: 8px; min-height: 108px; padding: 10px 14px 10px 10px; flex-shrink: 0; }
    .pub-cls-pos { width: 36px; flex-shrink: 0; text-align: center; }
    .pub-cls-avatar { width: 116px; flex-shrink: 0; margin-left: 8px; }
    .pub-cls-crew { flex: 1; min-width: 130px; max-width: 220px; overflow: hidden; }
    .pub-cls-sticky-net { display: none; width: 58px; flex: 0 0 58px; align-items: center; justify-content: center; text-align: center; }
    .pub-clf-table.is-net-sticky .pub-cls-sticky-net { display: inline-flex; }
    .pub-cls-sail { width: 70px; flex-shrink: 0; }
    .pub-cls-pts { width: 60px; flex-shrink: 0; text-align: center; }
    .pub-cls-dot { width: 42px; flex-shrink: 0; text-align: center; }
    .pub-race-dot { width: 42px; height: 42px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
    .pub-race-dot.normal   { background: #fde047; color: #1e1e1e; }
    .pub-race-dot.final    { background: #f5a623; color: #1e1e1e; }
    .pub-race-dot.penalty  { background: #fde047; color: #7c2d12; font-size: 10px; }
    .pub-race-dot.is-discard { opacity: 0.55; font-size: 11px; }
    .pub-race-dot.empty    { background: #f1f5f9; color: #94a3b8; }
    .pub-cls-dot { width: 48px; }
    /* Barra de filtros de resultados (clon estilo World Sailing) */
    .pub-toolbar {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 1.4rem;
      padding: 0 clamp(0.5rem, 2vw, 1.5rem) 1.2rem;
      margin-bottom: 1.2rem;
      border-bottom: 1px solid #eef1f5;
    }
    .pub-tool { display: inline-flex; align-items: center; gap: 0.7rem; }
    .pub-tool-search { flex: 1; min-width: 13rem; }
    /* En Inscritos la búsqueda conserva un ancho estable aunque haya pocas clases. */
    .sc-entry-toolbar .pub-tool-search { flex: 0 1 25rem; max-width: 25rem; }
    .pub-tool-label { font-size: 1rem; font-weight: 900; color: #16385c; letter-spacing: -0.01em; }
    /* Iconos de clase (en vez de selector) */
    .pub-class-icons { display: inline-flex; flex-wrap: wrap; gap: 0.5rem; }
    .pub-class-icon {
      appearance: none;
      width: 3.1rem; height: 3.1rem;
      border-radius: 50%;
      border: 2px solid #e2e8f0;
      background: #fff;
      display: inline-flex; align-items: center; justify-content: center;
      overflow: hidden;
      cursor: pointer;
      padding: 0.25rem;
      transition: border-color 0.15s ease, transform 0.12s ease, box-shadow 0.15s ease;
    }
    .pub-class-icon img { width: 100%; height: 100%; object-fit: contain; }
    .pub-class-icon-txt { font-size: 0.68rem; font-weight: 800; color: #16385c; text-transform: uppercase; letter-spacing: -0.02em; }
    .pub-class-icon:hover { border-color: #b9c6d6; transform: translateY(-2px); }
    .pub-class-icon.is-active {
      border-color: #0071e3;
      box-shadow: 0 0 0 3px rgba(0,113,227,.16);
    }
    .pub-tool-select-wrap { position: relative; display: inline-flex; }
    .pub-tool-select {
      appearance: none; -webkit-appearance: none;
      background: #f2f4f8; border: 1px solid #dbe1ea;
      border-radius: 0.7rem;
      padding: 0.55rem 2.3rem 0.55rem 0.9rem;
      font-size: 0.92rem; font-weight: 700; color: #16385c; cursor: pointer;
      min-width: 10rem;
    }
    .pub-tool-select:focus { outline: 0; border-color: #0071e3; box-shadow: 0 0 0 3px rgba(0,113,227,.16); }
    .pub-tool-chevron { position: absolute; right: 0.8rem; top: 50%; transform: translateY(-50%); width: 1rem; height: 1rem; color: #64748b; pointer-events: none; }
    .pub-tool-search-wrap { position: relative; display: flex; flex: 1; }
    .pub-tool-search-icon { position: absolute; left: 0.85rem; top: 50%; transform: translateY(-50%); width: 1.05rem; height: 1.05rem; color: #94a3b8; pointer-events: none; }
    .pub-tool-search-input {
      flex: 1; background: #f2f4f8; border: 1px solid transparent;
      border-radius: 0.7rem; padding: 0.55rem 1rem 0.55rem 2.6rem;
      font-size: 0.92rem; color: #16385c;
    }
    .pub-tool-search-input:focus { outline: 0; background: #fff; border-color: #0071e3; box-shadow: 0 0 0 3px rgba(0,113,227,.16); }
    .pub-view-toggle { display: inline-flex; gap: 0.35rem; background: #f2f4f8; border-radius: 0.7rem; padding: 0.25rem; }
    .pub-view-opt {
      display: inline-flex; align-items: center;
      padding: 0.4rem 0.9rem; border-radius: 0.55rem;
      font-size: 0.88rem; font-weight: 700; color: #64748b; cursor: pointer;
      transition: background 0.15s ease, color 0.15s ease;
    }
    .pub-view-opt input { display: none; }
    .pub-view-opt.is-active { background: #fff; color: #16385c; box-shadow: 0 1px 3px rgba(15,23,42,.12); }
    /* Vista resumen: oculta las columnas de mangas */
    .pub-results-scope.is-summary .pub-cls-dot { display: none; }
    /* Margen lateral del panel de resultados */
    .event-portal-panel .sc-results-panel[data-sc-results-panel="results"],
    .event-portal-panel .sc-results-panel[data-sc-results-panel="entries"] { padding: 0 clamp(0.5rem, 2vw, 1.75rem); }
    .event-portal-panel .sc-results-panel[data-sc-results-panel="results"] { padding-right: 0; }
    .event-portal-panel .sc-results-panel[data-sc-results-panel="results"] .pub-clf-wrapper { margin-right: clamp(-4.4rem, -4vw, -1rem); }
    /* Margen lateral del Tablón oficial (igual que resultados) */
    .event-portal-panel#event-panel-toa .sc-modal-body { padding: 0 clamp(0.5rem, 2vw, 1.75rem); }
    .toa-filterbar { padding-left: 0; padding-right: 0; }
    /* Media: título grande sin sangrado extra (alineado con su galería) */
    .event-portal-panel#event-panel-media .event-portal-panel-heading.is-headline { padding-left: 0; }
    /* Meteo: contenido a ancho completo; título alineado con el interior de la tarjeta */
    .event-portal-panel#event-panel-meteo .event-meteo-section { padding-left: 0; padding-right: 0; }
    .event-portal-panel#event-panel-meteo .event-portal-panel-heading.is-headline { padding-left: clamp(1.5rem, 3vw, 2.75rem); }
    /* Directo ocupa todo el ancho disponible (no se queda estrecho y centrado) */
    .event-portal-panel#event-panel-live { max-width: none; }
    .event-portal-panel#event-panel-live .sc-modal-body { padding: 0 clamp(0.5rem, 2vw, 1.75rem); }
    .pub-pos-circle { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 800; }
    .pub-pos-circle.gold   { background: #fbbf24; color: #1e1e1e; }
    .pub-pos-circle.silver { background: #d1d5db; color: #1e1e1e; }
    .pub-pos-circle.bronze { background: #d97706; color: #fff; }
    .pub-pos-circle.other  { background: #f1f5f9; color: #475569; }

    /* Shared sc-clf styles for entries/inscriptions section */
    .sc-clf-card { border: 0; border-radius: 0; background: transparent; overflow: visible; box-shadow: none; }
    .sc-clf-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.15rem 0 0.9rem; border-bottom: 1px solid #edf2f7; }
    .sc-clf-head-copy h4 { margin: 0; color: #0f172a; font-size: 0.98rem; font-weight: 800; }
    .sc-clf-head-copy p { margin: 0.28rem 0 0; color: #64748b; font-size: 0.72rem; font-weight: 600; }
    .sc-clf-badge { display: inline-flex; padding: 0.34rem 0.68rem; border-radius: 999px; border: 1px solid #dbe5f0; background: #fff; color: #475569; font-size: 0.66rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }
    .sc-clf-grid-head { display: grid; grid-template-columns: 6.25rem minmax(16rem,1.4fr) 5.8rem 5rem 5rem 6rem 5rem 5rem 5rem; align-items: center; gap: 0.85rem; padding: 0.72rem 0; border-bottom: 1px solid #edf2f7; color: #7c8aa0; font-size: 0.68rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; }
    .sc-results-scroll-shell { overflow: auto; max-height: min(58vh,46rem); padding-right: 0.15rem; }
    .sc-clf-body { display: flex; flex-direction: column; }
    .sc-clf-row { border-bottom: 1px solid #f1f5f9; }
    .sc-clf-row:last-child { border-bottom: 0; }
    .sc-clf-main { display: grid; grid-template-columns: 6.25rem minmax(16rem,1.4fr) 5.8rem 5rem 5rem 6rem 5rem 5rem 5rem; align-items: center; gap: 0.85rem; padding: 1rem 0; }
    /* En barcos con dos tripulantes priorizamos el ancho de los nombres y
       compactamos los campos técnicos de la derecha. */
    .sc-clf-grid--multi {
      grid-template-columns: 6.25rem minmax(20rem, 1.8fr) 4.6rem 3.6rem 4.25rem 4.65rem 4.1rem 4.1rem 4.1rem;
      gap: 0.45rem;
    }
    /* Directorio público de inscritos: mismo contenido que la inscripción de
       organización, conservando el lenguaje visual de la ficha del evento. */
    /* El shell exterior de resultados ya gestiona el scroll horizontal. */
    .sc-entry-directory-scroll { overflow: visible; }
    .sc-entry-directory { min-width: 72rem; }
    .sc-entry-directory-head,
    .sc-entry-directory-row-grid {
      display: grid;
      grid-template-columns: 4.25rem 5rem minmax(8rem, 1fr) minmax(9rem, 1.2fr) minmax(8rem, 1fr) 8rem 8rem 18rem;
      gap: .85rem;
      align-items: center;
    }
    .sc-entry-directory-head {
      padding: .72rem 0;
      border-bottom: 1px solid #edf2f7;
      color: #7c8aa0;
      font-size: .68rem;
      font-weight: 800;
      letter-spacing: .08em;
      text-transform: uppercase;
    }
    .sc-entry-directory-head button { display: inline-flex; min-width: 0; align-items: center; gap: .35rem; color: inherit; text-align: left; transition: color .15s ease; }
    .sc-entry-directory-head button:hover { color: #0f172a; }
    .sc-entry-directory-head button:focus-visible { border-radius: .25rem; outline: 2px solid #38bdf8; outline-offset: 2px; }
    .sc-entry-directory-row-grid { padding: 1rem 0; }
    .sc-entry-directory-photos .elb-crew-avatars { justify-content: flex-start; }
    .sc-entry-directory-person,
    .sc-entry-directory-crew { min-width: 0; }
    .sc-entry-directory-person { overflow: hidden; color: #0f172a; font-size: .83rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
    .sc-entry-directory-crew .elb-crew-names { gap: .12rem; }
    .sc-entry-directory-club { overflow: hidden; color: #64748b; font-size: .76rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
    .sc-entry-directory-class { display: inline-flex; max-width: 100%; overflow: hidden; border-radius: 999px; background: #f1f5f9; padding: .32rem .58rem; color: #475569; font-size: .7rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
    .sc-entry-directory-category { display: inline-flex; max-width: 100%; overflow: hidden; border-radius: 999px; background: #eff6ff; padding: .32rem .58rem; color: #1d4ed8; font-size: .7rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
    .sc-entry-directory-status { min-width: 18rem; padding: .2rem; column-gap: .2rem; }
    .sc-entry-directory-status > * { border-radius: .45rem; }
    .sc-clf-rank { display: flex; align-items: center; justify-content: center; }
    .sc-clf-flag { min-width: 0; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; font-size: 1.45rem; line-height: 1; }
    .sc-clf-flag.empty { font-size: 1.45rem; }
    .sc-clf-avatars { display: flex; align-items: center; justify-content: center; min-width: 0; gap: 0.45rem; }
    .sc-clf-avatar, .sc-clf-avatar-fallback { width: 3.6rem; height: 3.6rem; border-radius: 999px; border: 3px solid #fff; box-shadow: 0 10px 18px -18px rgba(15,23,42,0.55); flex: 0 0 auto; }
    .sc-clf-avatar { object-fit: cover; display: block; background: #e2e8f0; }
    .sc-clf-avatar-fallback { display: inline-flex; align-items: center; justify-content: center; background: linear-gradient(180deg,#e7eef8 0%,#dce7f3 100%); color: #55657d; font-size: 0.86rem; font-weight: 800; }
    .sc-clf-crew { min-width: 0; }
    .sc-clf-crew-line { margin: 0; color: #0f172a; font-size: 0.9rem; line-height: 1.28; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .sc-clf-crew-line + .sc-clf-crew-line { margin-top: 0.16rem; }
    .sc-clf-crew-line.primary { font-weight: 800; }
    .sc-clf-crew-line.secondary { font-weight: 700; color: #3c4d68; }
    .sc-clf-meta { margin: 0.34rem 0 0; color: #7c8aa0; font-size: 0.72rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .sc-clf-sail, .sc-clf-score { color: #1e293b; font-size: 0.92rem; font-weight: 750; text-align: center; font-variant-numeric: tabular-nums; }
    .sc-clf-boat { color: #334155; font-size: 0.82rem; font-weight: 700; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .sc-clf-score.total { color: #64748b; font-weight: 700; }
    /* Pago pendiente: la celda de pago se convierte en el botón de cobro. */
    .event-pay-cell {
      display: inline-flex; align-items: center; justify-content: center; gap: .3rem;
      background: #1c6fb0; color: #fff; text-decoration: none;
      font-size: .68rem; font-weight: 800; letter-spacing: .02em; text-transform: uppercase;
      transition: background .16s ease;
    }
    .event-pay-cell:hover { background: #17608f; color: #fff; }
    .event-pay-chip {
      display: inline-flex; align-items: center; gap: .35rem;
      border-radius: 999px; padding: .25rem .7rem;
      border: 1px solid #cbd5e1; background: #f8fafc; color: #64748b;
      font-size: .72rem; font-weight: 700; text-decoration: none; white-space: nowrap;
    }
    .event-pay-chip svg { width: .85rem; height: .85rem; }
    .event-pay-chip.is-actionable {
      border-color: #1c6fb0; background: #1c6fb0; color: #fff;
      transition: background .16s ease;
    }
    .event-pay-chip.is-actionable:hover { background: #17608f; color: #fff; }
    @media (max-width: 980px) {
      .sc-clf-grid-head { display: none; }
      .sc-clf-main { grid-template-columns: 4.8rem minmax(0,1fr) 4.2rem 4.2rem; align-items: start; }
      .sc-clf-avatar, .sc-clf-avatar-fallback { width: 3.1rem; height: 3.1rem; }
    }
    @media (max-width: 640px) {
      .sc-clf-head { align-items: flex-start; flex-direction: column; }
      .sc-clf-main { grid-template-columns: 4.3rem minmax(0,1fr) 3.7rem; gap: 0.7rem; padding: 0.95rem 0.9rem; }
      .sc-clf-crew-line, .sc-clf-meta { white-space: normal; }
      .sc-entry-directory { min-width: 64rem; }
    }
    .event-detail-shell .card-plain-white {
      background: #fff !important;
      border: 0 !important;
      border-radius: 0 !important;
      box-shadow: none !important;
    }
    @media (max-width: 980px) {
      .event-detail-shell { width: min(98vw, 1960px); }
      .event-hero {
        min-height: 72vh;
        border-radius: 28px;
      }
      .event-hero-inner {
        min-height: 72vh;
      }
      .event-hero-organizer {
        width: 6.1rem;
        height: 6.1rem;
      }
      .event-hero-top {
        justify-content: space-between;
      }
      .event-hero-bottom {
        flex-direction: column;
        align-items: flex-start;
      }
      .event-hero-cta-row {
        justify-content: flex-start;
      }
      .event-detail-layout {
        grid-template-columns: 1fr;
      }
      .event-showcase-inner {
        width: 100%;
      }
      .event-showcase-card {
        min-height: 28rem;
      }
      .event-detail-side {
        position: static;
        order: 0;
      }
    }
    @media (max-width: 640px) {
      .event-detail-shell { width: min(99vw, 1960px); }
      .event-hero {
        min-height: 68vh;
        border-radius: 24px;
      }
      .event-hero-inner {
        min-height: 68vh;
        padding: 1rem;
      }
      .event-hero-top {
        justify-content: flex-end;
      }
      .event-hero-organizer {
        top: 1rem;
        left: 1rem;
        width: 5.1rem;
        height: 5.1rem;
        border-width: 2px;
      }
      .event-hero-title {
        max-width: 15ch;
      }
      .event-hero-pills {
        gap: 0.65rem 1rem;
      }
      .event-hero-pill strong {
        font-size: 0.92rem;
      }
      .event-hero-cta-row {
        width: 100%;
      }
      .event-hero-action,
      .event-hero-action-secondary {
        width: 100%;
        justify-content: center;
      }
      .event-showcase {
        padding-top: 1rem;
      }
      .event-showcase-card {
        min-height: 26rem;
        padding: 1.15rem 1.15rem 1.25rem;
      }
      .event-showcase-rail {
        scroll-padding-left: 1rem;
      }
      .event-showcase-grid {
        padding-left: 1rem;
        grid-auto-columns: minmax(16.8rem, 84vw);
      }
      .event-showcase-heading {
        padding-left: 1rem;
      }
      .event-showcase-cover {
        min-height: 14rem;
      }
    }
    /* Public regatta portal: compact, information-first event presentation. */
    .event-detail-shell {
      --event-accent: #0284C7;
      --event-accent-dark: color-mix(in srgb, var(--event-accent) 72%, #0f172a);
      --event-accent-soft: color-mix(in srgb, var(--event-accent) 16%, #ffffff);
      --event-accent-deep: color-mix(in srgb, var(--event-accent) 80%, #0f172a);
      --event-accent-pale: color-mix(in srgb, var(--event-accent) 10%, #ffffff);
      width: min(100%, 1680px);
      max-width: 1680px;
      padding: 0 0 4rem;
      background: #fff;
    }
    .event-hero {
      min-height: 390px;
      margin: 0;
      border-radius: 0;
      background: linear-gradient(125deg, var(--event-accent-dark) 0%, var(--event-accent) 55%, color-mix(in srgb, var(--event-accent) 48%, #ffffff) 100%);
      box-shadow: none;
    }
    .event-hero::before {
      background: linear-gradient(90deg, rgba(6, 25, 53, .78), rgba(8, 41, 70, .36) 58%, rgba(6, 22, 45, .12));
    }
    .event-hero-inner {
      min-height: 390px;
      padding: 1.4rem clamp(1.4rem, 4vw, 4.4rem) 2rem;
    }
    .event-hero-organizer {
      top: 1.45rem;
      left: clamp(1.4rem, 4vw, 4.4rem);
      width: 5.3rem;
      height: 5.3rem;
      border-radius: 12px;
      border: 2px solid rgba(255,255,255,.9);
    }
    .event-hero-toggle { display: none; }
    .event-hero-bottom { padding-top: 3.7rem; }
    .event-hero-copy { gap: .7rem; max-width: 780px; }
    .event-hero-kicker { font-size: .68rem; letter-spacing: .16em; font-weight: 800; }
    .event-hero-title {
      max-width: 18ch;
      font-size: clamp(2.35rem, 4.6vw, 4.8rem);
      line-height: .98;
      letter-spacing: -.055em;
    }
    .event-hero-subtitle { max-width: 58ch; font-size: .98rem; }
    .event-hero-pills {
      gap: .4rem;
      margin-top: .7rem;
    }
    .event-hero-pill {
      min-width: 132px;
      padding: .58rem .72rem;
      border: 1px solid rgba(255,255,255,.3);
      border-radius: 2px;
      background: rgba(5, 30, 56, .24);
    }
    .event-hero-pill strong { font-size: .86rem; }
    .event-hero-pill span { font-size: .61rem; }
    .event-hero-cta-row { justify-content: flex-start; }
    .event-hero-action, .event-hero-action-secondary {
      border-radius: 2px;
      padding: .8rem 1.05rem;
      font-size: .84rem;
      font-weight: 750;
      text-transform: uppercase;
      letter-spacing: .045em;
    }
    .event-hero-action-secondary { background: rgba(8, 33, 60, .38); }
    .event-portal-nav {
      display: flex;
      align-items: stretch;
      overflow-x: auto;
      background: #152c51;
      border-bottom: 4px solid var(--event-accent);
      scrollbar-width: thin;
    }
    .event-portal-nav-item {
      appearance: none;
      border: 0;
      border-right: 1px solid rgba(255,255,255,.14);
      background: transparent;
      color: #f8fbff;
      min-width: max-content;
      padding: 1rem clamp(.95rem, 2vw, 1.85rem);
      display: inline-flex;
      align-items: center;
      gap: .5rem;
      text-decoration: none;
      font-size: .78rem;
      font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
      font-weight: 400;
      letter-spacing: 0;
      text-transform: uppercase;
      cursor: pointer;
      transition: background .16s ease;
    }
    .event-portal-nav-item:hover, .event-portal-nav-item:focus-visible { background: #244878; outline: 0; }
    .event-portal-nav-item.is-primary { background: var(--event-accent); }
    .event-portal-nav-entry { color: #6ee7a8; }
    .event-portal-nav-entry:hover { background: rgba(110,231,168,.16); color: #6ee7a8; }
    .event-portal-nav-icon {
      display: inline-grid;
      place-items: center;
      width: 1.15rem;
      height: 1.15rem;
      font-size: 1rem;
      font-weight: 800;
      line-height: 1;
    }
    .event-portal-live-dot { width: .52rem; height: .52rem; border-radius: 50%; background: #fb5d5d; box-shadow: 0 0 0 .25rem rgba(251,93,93,.18); }
    .event-showcase {
      width: auto;
      margin: 0;
      padding: clamp(1.5rem, 3.5vw, 3rem) clamp(1.2rem, 4vw, 4.4rem);
      background: #eef3f5;
    }
    .event-showcase-inner { width: 100%; }
    .event-showcase-heading {
      color: #183a59;
      margin: 0 0 1rem;
      font-size: 1.15rem;
      font-weight: 800;
      letter-spacing: -.025em;
    }
    .event-showcase-rail { overflow: visible; }
    .event-showcase-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: .75rem;
      overflow: visible;
      padding: 0;
    }
    .event-showcase-card {
      min-height: 210px;
      padding: 1.2rem;
      border-radius: 3px;
      background: #fff;
      color: #17324c;
      box-shadow: 0 3px 12px rgba(20, 49, 71, .08);
      border-top: 4px solid var(--event-accent);
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }
    .event-showcase-card.toa { border-color: #efad38; }
    .event-showcase-card.results { border-color: #166e8a; }
    .event-showcase-card.live { border-color: #e35a5a; }
    .event-showcase-card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(20, 49, 71, .14); }
    .event-showcase-copy { gap: .4rem; }
    .event-showcase-topline { color: var(--event-accent-dark); font-size: .66rem; font-weight: 850; letter-spacing: .13em; }
    .event-showcase-card h3 { color: #183a59; font-size: 1.25rem; line-height: 1.05; }
    .event-showcase-card p { color: #5b6c79; font-size: .84rem; line-height: 1.45; }
    .event-showcase-art { display: none; }
    .event-showcase-cta {
      align-self: flex-start;
      color: #fff;
      background: #1d6f8a;
      border-radius: 2px;
      padding: .5rem .68rem;
      font-size: .68rem;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .045em;
    }
    .event-meteo-section, .evn-section { scroll-margin-top: 1rem; }
    .evn-section { padding-left: clamp(1.2rem, 4vw, 4.4rem); padding-right: clamp(1.2rem, 4vw, 4.4rem); }
    @media (max-width: 900px) {
      .event-showcase-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .event-hero-bottom { gap: 1rem; }
    }
    @media (max-width: 640px) {
      .event-hero, .event-hero-inner { min-height: 520px; }
      .event-hero-inner { padding: 1rem 1rem 1.4rem; }
      .event-hero-organizer { left: 1rem; top: 1rem; width: 4.5rem; height: 4.5rem; }
      .event-hero-bottom { padding-top: 4.2rem; }
      .event-hero-title { font-size: 2.4rem; }
      .event-hero-pill { min-width: calc(50% - .25rem); }
      .event-portal-nav-item { padding: .85rem 1rem; font-size: .68rem; }
      .event-showcase-grid { grid-template-columns: 1fr; }
      .event-showcase-card { min-height: 160px; }
    }
    /* Page sections are mounted under the centred event navigation, never modals. */
    /* El header general de la web se mantiene blanco con textos/iconos en negro. */
    main.max-w-5xl { padding-top: 0 !important; }
    .event-detail-shell { display: flex; flex-direction: column; }
    /* Secciones movibles (meteo/noticias/sponsors) ocultas hasta que el JS las monta en su panel. */
    .event-detail-shell > .evn-section,
    .event-detail-shell > .event-meteo-section { display: none; }
    .event-portal-panel .evn-section,
    .event-portal-panel .event-meteo-section { display: block; }
    .event-topbar { order: 1; }
    .event-hero { order: 2; }
    .event-portal-panels { order: 3; }
    /* ── Segundo header del evento (barra negra estilo portal de regata) ── */
    /* A sangre completa, pegado justo debajo del header blanco de la web. */
    .event-topbar {
      width: 100vw;
      margin-left: calc(50% - 50vw);
      margin-right: calc(50% - 50vw);
    }
    .event-topbar {
      display: flex;
      align-items: center;
      gap: clamp(0.8rem, 2vw, 1.6rem);
      background: #1f2f50;
      color: #fff;
      min-height: 8.5rem;
      padding: 1.4rem clamp(1.2rem, 4vw, 3.5rem);
    }
    .event-topbar-brand {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      min-width: 0;
      flex-shrink: 0;
    }
    .event-topbar-logo {
      width: 6.2rem;
      height: 6.2rem;
      border-radius: 9999px;
      background: #fff;
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      font-weight: 800;
      color: #0a0a0d;
      font-size: 2.4rem;
      box-shadow: 0 8px 24px -10px rgba(0, 0, 0, 0.7);
    }
    .event-topbar-logo img { width: 100%; height: 100%; object-fit: cover; }
    .event-topbar .event-portal-nav {
      flex: 1;
      order: 0;
      background: transparent;
      border-bottom: 0;
      justify-content: center;
    }
    .event-topbar .event-portal-nav-item {
      border-right: 0;
      border-radius: 0.55rem;
      padding: 0.9rem clamp(0.85rem, 1.6vw, 1.5rem);
      color: rgba(255, 255, 255, 0.62);
      font-weight: 400;
      font-size: clamp(0.95rem, 1.25vw, 1.18rem);
      letter-spacing: 0;
      line-height: 1;
    }
    .event-topbar .event-portal-nav-item:hover,
    .event-topbar .event-portal-nav-item:focus-visible { background: rgba(255, 255, 255, 0.1); color: #fff; }
    /* Sección activa: blanco pleno sobre el resto apagado, con un velo
       apenas perceptible. Sin bloques ni líneas: el contraste lo pone el
       propio texto, así que se lee con cualquier acento del club. */
    .event-topbar .event-portal-nav-item.is-primary,
    .event-topbar .event-portal-nav-item.is-primary:hover,
    .event-topbar .event-portal-nav-item.is-primary:focus-visible {
      background: rgba(255, 255, 255, 0.13);
      color: #fff;
    }
    .event-topbar .event-portal-nav-icon { display: none; }
    /* Login + iconos sociales a la derecha del header negro */
    .event-topbar-actions { flex-shrink: 0; display: flex; align-items: center; gap: 1rem; }
    .event-topbar-login {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      background: #fff;
      color: #0a0a0d;
      border-radius: 9999px;
      padding: 0.6rem 1.35rem;
      font-size: 0.95rem;
      font-weight: 900;
      letter-spacing: 0.02em;
      text-transform: uppercase;
      text-decoration: none;
      transition: transform 0.1s ease, background 0.15s ease;
    }
    .event-topbar-login:hover { background: #e8edf3; color: #0a0a0d; }
    .event-topbar-login:active { transform: scale(0.97); }
    .event-topbar-login-icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 1.5rem; height: 1.5rem;
      border-radius: 9999px;
      background: #0a0a0d;
      color: #fff;
    }
    .event-topbar-login-icon svg { width: 0.85rem; height: 0.85rem; }
    .event-topbar-social { display: flex; align-items: center; gap: 0.55rem; }
    .event-topbar-social a {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 2.5rem; height: 2.5rem;
      border-radius: 9999px;
      background: #fff;
      color: #0a0a0d;
      transition: transform 0.12s ease, background 0.15s ease;
    }
    .event-topbar-social a:hover { transform: translateY(-2px); background: #e8edf3; }
    .event-topbar-social a svg { width: 1.25rem; height: 1.25rem; }
    @media (max-width: 1100px) {
      .event-topbar-social { display: none; }
    }
    @media (max-width: 900px) {
      .event-topbar { flex-wrap: wrap; min-height: 0; padding-top: 1rem; padding-bottom: 1rem; }
      .event-topbar-logo { width: 4.6rem; height: 4.6rem; font-size: 1.8rem; }
      .event-topbar .event-portal-nav { order: 3; flex-basis: 100%; justify-content: flex-start; }
      .event-topbar-actions { margin-left: auto; }
    }
    /* Hero: solo el título de la regata sobre la portada, abajo a la izquierda. */
    .event-hero-organizer,
    .event-hero-top,
    .event-hero-kicker,
    .event-hero-subtitle,
    .event-hero-pills,
    .event-hero-cta-row { display: none !important; }
    /* Portada a sangre completa y más alta. */
    .event-hero {
      width: 100vw;
      margin: 0 calc(50% - 50vw);
      border-radius: 0;
      box-shadow: none;
    }
    .event-hero, .event-hero-inner { min-height: 68vh; }
    /* Título centrado en vertical, manteniéndolo pegado a la izquierda. */
    .event-hero-inner { justify-content: center; }
    .event-hero-bottom { padding-top: 0; align-items: center; }
    .event-detail-shell.event-portal-section-open .event-hero { display: none; }
    /* ── Inicio: acordeón de info + foto al lado ── */
    /* En la landing el fondo de paneles es transparente: la tarjeta flota con márgenes. */
    .event-detail-shell:not(.event-portal-section-open) .event-portal-panels { background: transparent; }
    /* Portada de información: texto a la izquierda y foto del club a la
       derecha con corte diagonal (referencia F1). Los tres títulos abren
       su modal correspondiente. */
    .event-intro-card {
      display: grid;
      grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
      align-items: stretch;
      background: #fff;
      border: 1px solid #e1e5e9;
      border-radius: 28px;
      box-shadow: 0 16px 38px -32px rgba(15, 23, 42, 0.32);
      overflow: hidden;
    }
    .eih-copy {
      position: relative;
      z-index: 1;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: clamp(2rem, 4vw, 3.6rem) clamp(1.4rem, 3vw, 2.4rem) clamp(2rem, 4vw, 3.6rem) clamp(1.6rem, 4vw, 3.8rem);
    }
    .eih-eyebrow {
      font-size: 0.76rem;
      font-weight: 800;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: #7f97b1;
    }
    .eih-title {
      margin: 0.55rem 0 0;
      font-size: clamp(1.9rem, 3.4vw, 3rem);
      font-weight: 900;
      font-style: italic;
      letter-spacing: -0.045em;
      line-height: 0.98;
      color: #0b1b2e;
      text-wrap: balance;
    }
    .eih-links {
      list-style: none;
      margin: clamp(1.6rem, 3vw, 2.4rem) 0 0;
      padding: 0;
      display: grid;
      gap: clamp(0.9rem, 1.6vw, 1.35rem);
    }
    .eih-link {
      appearance: none;
      background: none;
      border: 0;
      padding: 0;
      cursor: pointer;
      font: inherit;
      font-size: clamp(0.86rem, 1.1vw, 1rem);
      font-weight: 800;
      font-style: italic;
      letter-spacing: 0.02em;
      text-transform: uppercase;
      color: #16385c;
      text-decoration: underline;
      text-decoration-thickness: 2px;
      text-underline-offset: 5px;
      text-align: left;
      transition: color 0.15s ease, transform 0.15s ease;
    }
    .eih-link:hover { color: #0071e3; transform: translateX(4px); }
    .eih-link:focus-visible { outline: 2px solid #0071e3; outline-offset: 4px; border-radius: 4px; }
    .eih-media {
      position: relative;
      min-height: clamp(280px, 30vw, 420px);
      margin-left: clamp(-3rem, -3.5vw, -1.5rem);
      background: linear-gradient(135deg, #16385c, #2f8ad0);
      clip-path: polygon(16% 0, 100% 0, 100% 100%, 0 100%);
    }
    .eih-media img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    /* Panel foto (descripción) */
    .eip-photo {
      border-radius: 20px;
      overflow: hidden;
      background: #16233f;
      min-height: 360px;
      height: 100%;
      max-height: 480px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .eip-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
    /* Panel descripción (texto editorial con barra de acento, sin icono) */
    .eip-desc {
      height: 100%;
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 1.4rem;
      padding: 0.5rem 0.25rem;
    }
    .eip-desc-text {
      margin: 0;
      font-size: 1.22rem;
      line-height: 1.7;
      color: #16385c;
    }
    /* Panel fechas (línea de tiempo Inicio → Fin, sin icono) */
    .eip-dates {
      height: 100%;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: 0.5rem 0.25rem;
    }
    .eip-timeline {
      list-style: none;
      margin: 0;
      padding: 0;
      display: grid;
      gap: 2.4rem;
    }
    .eip-tl-row {
      position: relative;
      display: grid;
      grid-template-columns: 1.1rem 1fr;
      gap: 1.15rem;
      align-items: start;
    }
    /* línea que conecta Inicio y Fin (solo cuando hay fin) */
    .eip-timeline.has-end .eip-tl-row:first-child::before {
      content: "";
      position: absolute;
      left: 0.55rem;
      top: 1.7rem;
      bottom: -2.4rem;
      width: 2px;
      transform: translateX(-50%);
      background: linear-gradient(180deg, rgba(127, 186, 242, 0.8), rgba(22, 56, 92, 0.2));
    }
    .eip-tl-marker {
      width: 1.1rem;
      height: 1.1rem;
      border-radius: 50%;
      margin-top: 0.5rem;
      position: relative;
      z-index: 1;
    }
    .eip-tl-marker.is-start {
      background: #7fbaf2;
      box-shadow: 0 0 0 5px rgba(127, 186, 242, 0.18);
    }
    .eip-tl-marker.is-end {
      background: #fff;
      border: 2.5px solid #16385c;
    }
    .eip-tl-content { display: grid; gap: 0.3rem; }
    .eip-dates-tag {
      font-size: 0.74rem;
      font-weight: 800;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: #7fbaf2;
    }
    .eip-dates-tag-end { color: #5b6b7d; }
    .eip-dates-day {
      font-size: 2.7rem;
      font-weight: 900;
      letter-spacing: -0.04em;
      color: #16385c;
      line-height: 1;
      text-transform: capitalize;
    }
    .eip-dates-full {
      font-size: 0.95rem;
      color: #5b6b7d;
      text-transform: capitalize;
    }
    /* Panel club organizador */
    .eip-club {
      background: #fff;
      border-radius: 20px;
      overflow: hidden;
      text-align: center;
      padding-bottom: 1.7rem;
      height: 100%;
    }
    /* Dentro de su modal la ficha del club no estira: se ajusta al contenido. */
    #sc-modal-intro-club .eip-club { height: auto; border: 1px solid #e6ecf3; }
    .eip-club-cover {
      height: 7.5rem;
      background: linear-gradient(135deg, #16385c, #2f8ad0);
      overflow: hidden;
    }
    .eip-club-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .eip-club-avatar {
      width: 5.6rem; height: 5.6rem;
      margin: -2.8rem auto 0;
      border-radius: 50%;
      background: #fff;
      border: 4px solid #fff;
      box-shadow: 0 8px 20px -10px rgba(15,23,42,.5);
      overflow: hidden;
      display: flex; align-items: center; justify-content: center;
      position: relative;
    }
    .eip-club-avatar img { width: 100%; height: 100%; object-fit: cover; }
    .eip-club-avatar span { font-size: 2rem; font-weight: 900; color: #16385c; }
    .eip-club-name {
      margin: 0.9rem 1.5rem 0;
      font-size: 1.4rem;
      font-weight: 900;
      letter-spacing: -0.02em;
      color: #16385c;
    }
    .eip-club-loc {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      margin: 0.4rem 0 0;
      font-size: 0.88rem;
      color: #64748b;
    }
    .eip-club-loc svg { width: 0.95rem; height: 0.95rem; }
    .eip-club-desc {
      margin: 0.9rem 1.7rem 0;
      font-size: 0.9rem;
      line-height: 1.55;
      color: #5b6b7d;
    }
    .eip-club-btn {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      margin-top: 1.4rem;
      background: #0071e3;
      color: #fff;
      font-size: 0.88rem;
      font-weight: 800;
      border-radius: 9999px;
      padding: 0.72rem 1.6rem;
      text-decoration: none;
      transition: background 0.15s ease, transform 0.1s ease;
    }
    .eip-club-btn:hover { background: #0062c4; color: #fff; }
    .eip-club-btn:active { transform: scale(0.98); }
    .eip-club-btn svg { width: 1.05rem; height: 1.05rem; }
    @media (max-width: 900px) {
      .event-intro-card { grid-template-columns: 1fr; }
      .eih-media {
        order: -1;
        min-height: 200px;
        margin-left: 0;
        clip-path: polygon(0 0, 100% 0, 100% 82%, 0 100%);
      }
      .eih-copy { padding: 1.5rem 1.4rem 2rem; }
    }
    /* ── Noticias del evento en Inicio (formato "Top noticias" del perfil de club) ── */
    .event-stories-block { margin-top: 2.5rem; }
    .event-stories-title {
      margin: 0 0 1.55rem;
      color: #080b10;
      font-size: clamp(1.45rem, 2.2vw, 2.2rem);
      font-weight: 900;
      letter-spacing: -0.065em;
      line-height: 0.9;
      text-transform: uppercase;
    }
    .event-stories-grid {
      display: grid;
      grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
      gap: 1.5rem;
    }
    .event-story-feature,
    .event-story-card {
      display: block;
      overflow: hidden;
      border-radius: 1.15rem;
      background: #f2f3f4;
      color: #080b10;
      cursor: pointer;
      transition: transform 160ms ease, box-shadow 160ms ease;
    }
    .event-story-feature:hover,
    .event-story-card:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(15, 23, 42, .13); }
    .event-story-feature { position: relative; min-height: 100%; }
    .event-story-feature-media { position: relative; min-height: 32rem; background: linear-gradient(135deg, #0e5b89, #59b4d0); }
    .event-story-feature-media img,
    .event-story-card-media img { width: 100%; height: 100%; display: block; object-fit: cover; }
    .event-story-feature-media img { position: absolute; inset: 0; }
    .event-story-feature-media::after,
    .event-story-card-media::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(5, 13, 22, .75), rgba(5, 13, 22, 0) 52%);
    }
    .event-story-feature-copy { position: absolute; z-index: 1; left: 1.5rem; right: 1.5rem; bottom: 1.35rem; color: #fff; }
    .event-story-feature-copy h3 { margin: .65rem 0 0; max-width: 18ch; font-size: clamp(1.5rem, 2.5vw, 2.45rem); line-height: 1.04; letter-spacing: -.045em; }
    .event-story-rail { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; align-content: start; }
    .event-story-card-media { position: relative; aspect-ratio: 1.55; background: linear-gradient(135deg, #0e5b89, #59b4d0); overflow: hidden; }
    .event-story-card-copy { padding: 1rem 1.1rem 1.15rem; }
    .event-story-card-copy h3 { margin: .7rem 0 0; font-size: 1.08rem; line-height: 1.23; letter-spacing: -.035em; }
    .event-story-meta {
      display: inline-flex;
      align-items: center;
      gap: .35rem;
      padding: .34rem .58rem;
      border-radius: 999px;
      background: rgba(255,255,255,.92);
      color: #121820;
      font-size: .67rem;
      font-weight: 800;
    }
    .event-story-feature .event-story-meta { background: rgba(8, 13, 20, .68); color: #fff; }
    .event-story-chip {
      display: inline-flex;
      align-items: center;
      font-size: 0.66rem;
      font-weight: 700;
      letter-spacing: 0.03em;
      color: #0071e3;
      background: #eaf2fd;
      border-radius: 9999px;
      padding: 0.24rem 0.6rem;
      text-transform: uppercase;
    }
    .event-story-empty { padding: 3rem 1.25rem; border-radius: 1.15rem; background: #f2f3f4; color: #64748b; text-align: center; grid-column: 1 / -1; }
    .event-news-archive-open { grid-column:1 / -1; justify-self:center; display:inline-flex; gap:.45rem; align-items:center; margin-top:.15rem; border:1px solid #d9e2ec; border-radius:999px; padding:.72rem 1.1rem; background:#fff; color:#10213f; font-weight:800; cursor:pointer; }
    .event-news-archive-modal { position:fixed; inset:0; z-index:500; display:grid; place-items:center; padding:1rem; } .event-news-archive-modal[hidden] { display:none; } .event-news-archive-backdrop { position:absolute; inset:0; background:rgba(7,18,32,.58); backdrop-filter:blur(4px); } .event-news-archive-sheet { position:relative; width:min(100%,1100px); max-height:min(88vh,900px); overflow:auto; border-radius:1.5rem; padding:clamp(1.25rem,3vw,2.5rem); background:#fff; box-shadow:0 24px 70px rgba(0,0,0,.28); } .event-news-archive-sheet header { display:flex; justify-content:space-between; gap:1rem; } .event-news-archive-sheet header p { margin:0; color:#1c6fb0; font-size:.75rem; font-weight:850; text-transform:uppercase; letter-spacing:.12em; } .event-news-archive-sheet h2 { margin:.3rem 0 1.4rem; color:#080b10; font-size:clamp(1.6rem,3vw,2.35rem); } .event-news-archive-sheet header button { display:grid; width:2.4rem; height:2.4rem; place-items:center; border:0; border-radius:50%; background:#eef2f7; color:#10213f; font-size:1.65rem; cursor:pointer; }
    .event-news-archive-filters { display:flex; flex-wrap:wrap; gap:.5rem; margin:.65rem 0; } .event-news-archive-filters button { border:1px solid #d9e2ec; border-radius:999px; padding:.48rem .82rem; background:#fff; color:#526b89; font-size:.84rem; font-weight:800; cursor:pointer; } .event-news-archive-filters button.is-active { border-color:#10213f; background:#10213f; color:#fff; } .event-news-archive-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1.5rem; } .event-news-archive-grid a { overflow:hidden; border:1px solid #e4ebf2; border-radius:1rem; color:#10213f; text-decoration:none; background:#fff; } .event-news-archive-grid img { width:100%; aspect-ratio:1.55; object-fit:cover; display:block; background:#edf2f7; } .event-news-archive-grid span,.event-news-archive-grid strong { display:block; padding:0 .9rem; } .event-news-archive-grid span { margin-top:.85rem; color:#64748b; font-size:.72rem; font-weight:800; } .event-news-archive-grid strong { padding-bottom:1rem; margin-top:.35rem; line-height:1.25; } .event-news-archive-empty { color:#64748b; text-align:center; padding:2rem; }
    @media (max-width: 900px) {
      .event-stories-grid { grid-template-columns: 1fr; gap: 1rem; }
      .event-story-feature-media { min-height: 23rem; }
      .event-story-rail { gap: 1rem; }
    }
    @media (max-width: 460px) { .event-story-rail { grid-template-columns: 1fr; } }
    @media (max-width: 700px) { .event-news-archive-grid { grid-template-columns:1fr; } }
    /* ── Banda azul SailIQ: resultados (con filtro) + señales de flota ── */
    .event-live-band {
      width: 100vw;
      margin: 2.5rem calc(50% - 50vw) 0;
      background: #1f2f50;
      padding: clamp(2rem, 4vw, 3.5rem) clamp(1.2rem, 4vw, 3.5rem);
    }
    .event-live-band-inner {
      max-width: 1560px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: minmax(0, 1.55fr) minmax(0, 0.9fr);
      gap: 1.75rem;
      align-items: stretch;
    }
    .elb-card {
      background: #fff;
      border-radius: 1.4rem;
      padding: clamp(1.4rem, 2.5vw, 2.1rem);
      display: flex;
      flex-direction: column;
      overflow: hidden;
    }
    .elb-card-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      padding-bottom: 1.15rem;
      margin-bottom: 1.1rem;
      border-bottom: 1px solid #eef1f5;
    }
    .elb-card-title {
      margin: 0;
      display: inline-flex;
      align-items: center;
      gap: 0.55rem;
      font-size: clamp(1.35rem, 2vw, 1.85rem);
      font-weight: 900;
      letter-spacing: -0.03em;
      color: #16385c;
    }
    .elb-title-icon {
      width: 2rem;
      height: 2rem;
      flex: 0 0 2rem;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 0.65rem;
      background: #e7f1fb;
      color: #2773b8;
    }
    .elb-title-icon svg { width: 1.12rem; height: 1.12rem; }
    .elb-title-icon-live { background: #e5f8ef; color: #159565; }
    .event-live-dot {
      width: 0.65rem;
      height: 0.65rem;
      border-radius: 50%;
      background: #fb5d5d;
      box-shadow: 0 0 0 0.28rem rgba(251, 93, 93, 0.22);
    }
    /* Selector de clase */
    .elb-select-wrap { display: inline-flex; align-items: center; gap: 0.6rem; }
    .elb-select-label { font-size: 0.92rem; font-weight: 800; color: #16385c; }
    .elb-select-box { position: relative; display: inline-flex; }
    .elb-select {
      appearance: none;
      -webkit-appearance: none;
      background: #f2f4f8;
      border: 1px solid #dbe1ea;
      border-radius: 0.75rem;
      padding: 0.55rem 2.3rem 0.55rem 0.9rem;
      font-size: 0.9rem;
      font-weight: 700;
      color: #16385c;
      cursor: pointer;
      min-width: 9rem;
    }
    .elb-select:focus { outline: 0; border-color: #0071e3; box-shadow: 0 0 0 3px rgba(0,113,227,.16); }
    .elb-select-chevron {
      position: absolute;
      right: 0.8rem; top: 50%;
      transform: translateY(-50%);
      width: 1rem; height: 1rem;
      color: #64748b; pointer-events: none;
    }
    /* Cabecera de columnas */
    .elb-results-head {
      display: grid;
      grid-template-columns: 3rem 1fr auto auto;
      gap: 1rem;
      align-items: center;
      padding: 0 0.9rem 0.55rem;
      font-size: 0.78rem;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: #90a0b3;
    }
    .elb-col-sail { min-width: 5.5rem; }
    .elb-col-pts { min-width: 4.5rem; text-align: right; }
    .elb-results-group { display: grid; gap: 0.7rem; }
    .elb-results-group[hidden] { display: none; }
    .elb-result-row {
      display: grid;
      grid-template-columns: 3rem 1fr auto auto;
      gap: 1rem;
      align-items: center;
      background: #f6f8fb;
      border-radius: 1rem;
      padding: 0.9rem;
      min-height: 5.2rem;
    }
    .elb-pos {
      width: 2.7rem; height: 2.7rem;
      border-radius: 50%;
      display: inline-flex; align-items: center; justify-content: center;
      font-size: 1.15rem; font-weight: 900; color: #fff;
      background: #94a3b8;
    }
    .elb-pos.p1 { background: #e3a72f; }
    .elb-pos.p2 { background: #9aa4b2; }
    .elb-pos.p3 { background: #c77b43; }
    .elb-crew { display: flex; align-items: center; gap: 0.9rem; min-width: 0; }
    .elb-crew-avatars { display: inline-flex; flex-shrink: 0; }
    .elb-avatar {
      width: 3rem; height: 3rem;
      border-radius: 50%;
      overflow: hidden;
      background: #dbe4ef;
      border: 2px solid #fff;
      display: inline-flex; align-items: center; justify-content: center;
      font-weight: 800; color: #3b6ea5;
    }
    .elb-avatar + .elb-avatar { margin-left: -0.9rem; }
    .elb-avatar img { width: 100%; height: 100%; object-fit: cover; }
    .elb-crew-names { min-width: 0; display: grid; gap: 0.1rem; }
    .elb-crew-name {
      font-size: 1rem;
      font-weight: 800;
      color: #16385c;
      line-height: 1.2;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .elb-sail {
      display: inline-flex; align-items: center; gap: 0.4rem;
      font-size: 1rem; font-weight: 800; color: #334155;
    }
    .elb-flag { font-size: 1.25rem; }
    .elb-pts { font-size: 1.5rem; font-weight: 900; color: #16385c; text-align: right; letter-spacing: -0.02em; }
    .elb-card-foot {
      display: flex; align-items: center; justify-content: space-between;
      gap: 1rem; flex-wrap: wrap;
      margin-top: 1.25rem;
      padding-top: 1.1rem;
    }
    .elb-updated { font-size: 0.82rem; color: #90a0b3; font-weight: 600; }
    .elb-btn {
      appearance: none; border: 0;
      margin-left: auto;
      background: #fff;
      color: #16385c;
      font-size: 0.82rem; font-weight: 800;
      border-radius: 9999px;
      padding: 0.62rem 1.5rem;
      cursor: pointer;
      box-shadow: 0 1px 3px rgba(15,23,42,.14);
      transition: background 0.15s ease, transform 0.1s ease;
    }
    .elb-btn:hover { background: #eef2f7; }
    .elb-btn:active { transform: scale(0.98); }
    .elb-empty { margin: 1rem 0; padding: 1.5rem; text-align: center; color: #90a0b3; font-size: 0.92rem; }
    .elb-empty.is-light { color: #90a0b3; }
    /* Señales de flota */
    .elb-card-signals .elb-card-foot { padding-top: 0.9rem; }
    .elb-signals {
      display: flex; flex-direction: column; gap: 0.6rem;
      flex: 1;
      min-height: 0;
      overflow-y: auto;
      margin: 0 -0.35rem;
      padding: 0 0.35rem;
      scrollbar-width: thin;
    }
    .elb-signal-row {
      display: flex; align-items: center; gap: 0.85rem;
      background: #f6f8fb;
      border-radius: 0.85rem;
      padding: 0.75rem 0.9rem;
    }
    /* El filtro de clase asigna el atributo HTML `hidden`. Como esta regla
       declara display:flex, debe prevalecer explícitamente sobre ella. */
    .elb-signal-row[hidden] { display: none !important; }
    .elb-signal-flag {
      flex-shrink: 0;
      width: 3rem; height: 2.15rem;
      border-radius: 0.35rem;
      overflow: hidden;
      display: inline-flex; align-items: center; justify-content: center;
      background: #fff;
      box-shadow: 0 1px 3px rgba(15,23,42,.12);
    }
    .elb-signal-flag svg { width: 100%; height: 100%; display: block; }
    .elb-signal-flag-txt {
      display: inline-flex; align-items: center; justify-content: center;
      width: 100%; height: 100%;
      background: #fef3c7; color: #92400e;
      font-size: 0.95rem; font-weight: 900; letter-spacing: -0.02em;
    }
    .elb-signal-dot {
      flex-shrink: 0;
      width: 0.55rem; height: 0.55rem;
      border-radius: 50%;
      background: #7c3aed;
    }
    .elb-signal-label {
      flex: 1; min-width: 0;
      font-size: 0.95rem; font-weight: 800; color: #16385c; line-height: 1.25;
    }
    .elb-signal-label small { display: block; font-size: 0.75rem; font-weight: 600; color: #90a0b3; margin-top: 0.1rem; }
    .elb-signal-time {
      flex-shrink: 0;
      display: inline-flex; align-items: center; gap: 0.35rem;
      font-size: 0.9rem; font-weight: 800; color: #475569;
    }
    .elb-signal-time svg { width: 1.1rem; height: 1.1rem; color: #94a3b8; }
    @media (max-width: 900px) {
      .event-live-band-inner { grid-template-columns: 1fr; }
    }
    @media (max-width: 560px) {
      .elb-results-head { display: none; }
      .elb-result-row { grid-template-columns: 2.4rem 1fr auto; }
      .elb-result-row .elb-col-sail { display: none; }
    }
    /* ── Redes sociales: post embebido + grid Instagram + síguenos ── */
    .event-social-block { margin-top: 2.5rem; }
    .event-social-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: clamp(1.5rem, 3vw, 3rem);
      align-items: stretch;
    }
    .event-social-post {
      background: #fff;
      border: 1.5px solid #0a0a0d;
      border-radius: 1.15rem;
      padding: 1.4rem;
    }
    .event-social-insta { display: flex; flex-direction: column; }
    .event-social-insta-grid { flex: 1; }
    .event-social-post-head {
      display: flex;
      align-items: center;
      gap: 0.7rem;
      margin-bottom: 0.9rem;
    }
    .event-social-post-avatar {
      width: 2.7rem;
      height: 2.7rem;
      border-radius: 9999px;
      overflow: hidden;
      background: #eef3f8;
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: 800;
      color: #3b6ea5;
      flex-shrink: 0;
    }
    .event-social-post-avatar img { width: 100%; height: 100%; object-fit: cover; }
    .event-social-post-author { flex: 1; min-width: 0; display: grid; }
    .event-social-post-author strong { font-size: 0.92rem; color: #0f172a; }
    .event-social-post-author span { font-size: 0.76rem; color: #94a3b8; }
    .event-social-post-network { width: 1.3rem; height: 1.3rem; color: #0f172a; flex-shrink: 0; }
    .event-social-post-text {
      margin: 0 0 0.9rem;
      font-size: 1rem;
      line-height: 1.5;
      color: #0f172a;
    }
    .event-social-post-media {
      border-radius: 0.9rem;
      overflow: hidden;
      border: 1px solid #e5e8ee;
      margin-bottom: 0.9rem;
      max-height: 24rem;
    }
    .event-social-post-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .event-social-post-link {
      display: grid;
      gap: 0.2rem;
      border: 1px solid #e5e8ee;
      border-radius: 0.9rem;
      padding: 0.85rem 1rem;
      margin-bottom: 0.9rem;
    }
    .event-social-post-domain { font-size: 0.76rem; color: #94a3b8; }
    .event-social-post-link strong { font-size: 0.9rem; color: #0f172a; }
    .event-social-post-link span:last-child { font-size: 0.82rem; color: #64748b; line-height: 1.45; }
    .event-social-post-actions {
      display: flex;
      align-items: center;
      gap: 1.4rem;
      padding-top: 0.8rem;
      border-top: 1px solid #eef1f5;
      font-size: 0.82rem;
      font-weight: 600;
      color: #64748b;
    }
    .event-social-post-like { display: inline-flex; align-items: center; gap: 0.35rem; color: #e0245e; }
    .event-social-post-like svg { width: 1rem; height: 1rem; }
    .event-social-insta-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.8rem;
    }
    .event-social-insta-tile {
      position: relative;
      border-radius: 0.7rem;
      overflow: hidden;
      aspect-ratio: 0.82;
      background: linear-gradient(135deg, #0e5b89, #59b4d0);
    }
    .event-social-insta-tile img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .event-social-insta-likes {
      position: absolute;
      left: 0.7rem;
      bottom: 0.7rem;
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      color: #fff;
      font-size: 0.95rem;
      font-weight: 800;
      text-shadow: 0 1px 6px rgba(0, 0, 0, 0.45);
    }
    .event-social-insta-likes svg { width: 1.05rem; height: 1.05rem; }
    .event-social-follow { margin-top: 2.2rem; text-align: center; }
    .event-social-follow h2 {
      margin: 0 0 1.1rem;
      color: #080b10;
      font-size: clamp(1.2rem, 1.8vw, 1.7rem);
      font-weight: 900;
      letter-spacing: 0.02em;
      text-transform: uppercase;
    }
    .event-social-icons {
      display: flex;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
      gap: 0.9rem;
    }
    .event-social-icons a {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 3.2rem;
      height: 3.2rem;
      border-radius: 9999px;
      border: 0;
      color: #fff;
      background: #0071e3;
      transition: background 0.15s ease, color 0.15s ease, transform 0.1s ease;
    }
    .event-social-icons a:hover { filter: brightness(.9); color: #fff; transform: translateY(-2px); }
    .event-social-icons a.is-facebook { background: #1877f2; }
    .event-social-icons a.is-x { background: #000; }
    .event-social-icons a.is-instagram { background: linear-gradient(135deg, #833ab4 0%, #fd1d1d 52%, #fcb045 100%); }
    .event-social-icons a.is-youtube { background: #ff0000; }
    .event-social-icons a.is-tiktok { background: #010101; box-shadow: 2px 2px 0 #25f4ee, -2px -2px 0 #fe2c55; }
    .event-social-icons a.is-whatsapp { background: #25d366; }
    .event-social-icons a svg { width: 1.35rem; height: 1.35rem; }
    .event-social-icons--legacy, .championship-event-footer-social--legacy { display: none; }
    .event-topbar-social a.is-unconfigured, .event-social-icons a.is-unconfigured, .championship-event-footer-social a.is-unconfigured {
      opacity: .5;
      cursor: default;
      pointer-events: none;
    }
    @media (max-width: 900px) {
      .event-social-grid { grid-template-columns: 1fr; }
    }
    /* ── Patrocinadores: fila de logos estilo "Partners" ── */
    .event-partners-block {
      margin-top: 2.5rem;
      width: 100vw;
      margin-left: calc(50% - 50vw);
      margin-right: calc(50% - 50vw);
      padding: clamp(2rem, 4vw, 3.6rem) clamp(1.5rem, 5vw, 5rem);
      border-top: 1px solid #e5e8ee;
      border-bottom: 1px solid #e5e8ee;
      background: #fff;
    }
    .event-partners-title {
      margin: 0 auto;
      display: block;
      text-align: center;
      color: #080b10;
      font-size: clamp(1.45rem, 2.2vw, 2.2rem);
      font-weight: 900;
      letter-spacing: -0.065em;
      line-height: 0.9;
      text-transform: uppercase;
    }
    /* Cada categoría de sponsors, apilada en vertical */
    .event-sponsor-group {
      max-width: 1200px;
      margin: clamp(1.9rem, 3.4vw, 3rem) auto 0;
      text-align: center;
    }
    .event-sponsor-group-title {
      margin: 0 0 1.3rem;
      color: #5b6472;
      font-size: 0.9rem;
      font-weight: 800;
      letter-spacing: 0.14em;
      text-transform: uppercase;
    }
    .event-sponsor-group-title::after {
      content: "";
      display: block;
      width: 2.4rem;
      height: 2px;
      margin: 0.65rem auto 0;
      background: #d7dce4;
      border-radius: 2px;
    }
    .event-sponsor-grid {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: center;
      gap: clamp(1.5rem, 4vw, 3.5rem);
    }
    .event-partner {
      flex: 0 0 auto;
      appearance: none;
      border: 0;
      background: transparent;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.55rem;
      cursor: pointer;
      padding: 0;
      transition: transform 160ms ease;
    }
    .event-partner:hover { transform: translateY(-3px); }
    /* Tamaño por defecto (principal): grande, como antes */
    .event-partner img {
      height: 17rem;
      max-width: 30rem;
      object-fit: contain;
      display: block;
      border-radius: 1.25rem;
    }
    /* Instituciones y colaboradores: logos más pequeños */
    .event-sponsor-group[data-tier="instituciones"] .event-partner img,
    .event-sponsor-group[data-tier="colaboradores"] .event-partner img {
      height: 9.5rem;
      max-width: 20rem;
    }
    .event-partner-name {
      font-size: 0.92rem;
      font-weight: 800;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: #0a0a0d;
    }
    @media (max-width: 640px) {
      .event-partner img { height: 11rem; max-width: 100%; }
      .event-sponsor-group[data-tier="instituciones"] .event-partner img,
      .event-sponsor-group[data-tier="colaboradores"] .event-partner img {
        height: 7rem;
      }
    }
    .event-portal-nav-item { flex: 0 0 auto; }
    .event-showcase { display: none; }
    .event-modal-source { display: none !important; }
    .event-portal-panels {
      background: #fff;
      padding: clamp(1.5rem, 4vw, 4rem) clamp(1rem, 4vw, 4.4rem);
    }
    .event-portal-panel { max-width: 1560px; margin: 0 auto; }
    .event-portal-panel[hidden] { display: none !important; }
    .event-portal-panel-heading { margin: 0 0 1.35rem; }
    .event-portal-panel-heading p {
      margin: 0 0 .25rem;
      color: #3286a3;
      font-size: .7rem;
      font-weight: 850;
      letter-spacing: .14em;
      text-transform: uppercase;
    }
    .event-portal-panel-heading h2 {
      margin: 0;
      color: #173651;
      font-size: clamp(1.65rem, 3vw, 2.55rem);
      letter-spacing: -.045em;
      line-height: 1;
    }
    /* Título estilo Inicio (TOP NOTICIAS / PATROCINADORES), alineado con el contenido */
    .event-portal-panel-heading.is-headline {
      padding-left: clamp(0.5rem, 2vw, 1.75rem);
      margin-bottom: 1.55rem;
    }
    .event-portal-panel-heading.is-headline h2 {
      color: #080b10;
      font-size: clamp(1.45rem, 2.2vw, 2.2rem);
      font-weight: 900;
      letter-spacing: -0.065em;
      line-height: 0.9;
      text-transform: uppercase;
    }
    .event-portal-panel .sc-modal-body {
      padding: 0;
      max-height: none;
      overflow: visible;
      background: transparent;
    }
    .event-portal-panel .event-general-modal-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 1px;
      background: #d8e1e8;
      border: 1px solid #d8e1e8;
      border-radius: 4px;
      overflow: hidden;
    }
    .event-portal-panel .event-general-modal-item {
      padding: 1.25rem;
      background: #fff;
      min-height: 125px;
    }
    .event-portal-panel .event-general-modal-item-full { grid-column: span 3; }
    /* Segmented control Apple para Chat/Live */
    .event-portal-panel .sc-live-tabs {
      background: #f1f4f8; border: 0; border-radius: 9999px;
      padding: 0.32rem; gap: 0.25rem;
    }
    .event-portal-panel .sc-live-tab {
      border-radius: 9999px; min-height: 2.5rem; padding: 0 1.5rem;
      font-size: 0.9rem; font-weight: 700; color: #64748b;
      background: transparent; border: 0; cursor: pointer;
      transition: background .15s ease, color .15s ease, box-shadow .15s ease;
    }
    .event-portal-panel .sc-live-tab.is-active {
      background: #fff; color: #0f172a; box-shadow: 0 1px 4px rgba(15,23,42,.14);
    }
    /* Segmented control Apple para Inscritos/Resultados */
    .event-portal-panel .sc-results-sections {
      background: #f1f4f8;
      border: 0;
      border-radius: 9999px;
      padding: 0.32rem;
      gap: 0.25rem;
      margin: 0 0 1.4rem clamp(0.5rem, 2vw, 1.75rem);
    }
    .event-portal-panel .sc-results-section-btn {
      border-radius: 9999px;
      min-height: 2.5rem;
      padding: 0 1.5rem;
      font-size: 0.9rem;
      font-weight: 700;
    }
    .event-portal-panel .sc-results-section-btn.is-active {
      box-shadow: 0 1px 4px rgba(15, 23, 42, 0.14);
    }
    .event-portal-panel .sc-results-scroll-shell { overflow-x: auto; overflow-y: visible; max-height: none; }
    .event-portal-panel .sc-clf-card { min-width: 850px; border: 0; box-shadow: none; background: transparent; }
    .event-portal-panel .sc-clf-head { display: none; }
    .event-portal-panel .sc-clf-grid-head {
      grid-template-columns: 92px 1.8fr .65fr .55fr .8fr .7fr .55fr .55fr .55fr;
      padding: .8rem 1rem;
      color: #173651;
      font-size: .72rem;
      font-weight: 850;
      text-transform: uppercase;
    }
    .event-portal-panel .sc-clf-row { margin-bottom: .65rem; border-radius: 3px; background: #fff; box-shadow: 0 1px 0 rgba(23,54,81,.05); }
    .event-portal-panel .sc-clf-main { grid-template-columns: 92px 1.8fr .65fr .55fr .8fr .7fr .55fr .55fr .55fr; min-height: 100px; }
    .event-portal-panel .sc-clf-avatars.stack { gap: 0; }
    .event-portal-panel .sc-clf-avatar { width: 76px; height: 76px; border: 3px solid #fff; }
    .event-portal-panel .sc-clf-crew-line.primary { font-size: 1rem; color: #1b3349; }
    .event-portal-panel .sc-clf-meta { color: #687986; }
    .event-portal-panel .sc-clf-sail, .event-portal-panel .sc-clf-boat, .event-portal-panel .sc-clf-score { font-weight: 750; color: #263f54; }
    .event-portal-panel .sc-live-shell { border: 0; border-radius: 0; background: transparent; padding: 0; width: 100%; max-width: none; margin: 0; }
    /* Directo en dos columnas: izquierda chat/señales, derecha tracking */
    .event-portal-panel .sc-live-2col {
      display: grid;
      grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
      gap: clamp(2rem, 4vw, 4.5rem);
      align-items: start;
    }
    .sc-live-tabs-row { margin-bottom: 1rem; }
    /* Tabla de tracking (columna derecha) */
    .sc-live-right { min-width: 0; }
    .sc-track-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
    .sc-track-head h4 { margin: 0; font-size: 1.25rem; font-weight: 900; letter-spacing: -0.03em; color: #16385c; }
    .sc-track-open {
      display: inline-flex; align-items: center; gap: 0.4rem;
      font-size: 0.82rem; font-weight: 800; color: #0071e3; text-decoration: none;
    }
    .sc-track-open svg { width: 1rem; height: 1rem; }
    .sc-track-open:hover { color: #0062c4; }
    .sc-track-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-bottom: 1rem; }
    .sc-track-filter-label { font-size: 0.82rem; font-weight: 700; color: #64748b; margin-right: 0.2rem; }
    .sc-track-pill {
      appearance: none; border: 0; cursor: pointer;
      padding: 0.4rem 1rem; border-radius: 9999px;
      font-size: 0.82rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.02em;
      background: #f1f4f8; color: #64748b;
      transition: background 0.15s ease, color 0.15s ease;
    }
    .sc-track-pill:hover { color: #16385c; }
    .sc-track-pill.is-active { background: #16385c; color: #fff; }
    .sc-track-class-circle {
      display: inline-flex; width: 2.65rem; height: 2.65rem; align-items: center; justify-content: center;
      padding: 0; overflow: hidden; border: 1px solid #dbe5f0; border-radius: 50%; background: #fff;
      color: #3c516c; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
    }
    .sc-track-class-circle img { width: 100%; height: 100%; object-fit: contain; padding: .28rem; }
    .sc-track-class-circle span { font-size: .66rem; font-weight: 900; letter-spacing: -.02em; }
    .sc-track-class-circle:hover { border-color: #6ca8d6; transform: translateY(-1px); }
    .sc-track-class-circle.is-active { border-color: #16385c; box-shadow: 0 0 0 3px rgba(22,56,92,.16); }
    .sc-track-table { display: flex; flex-direction: column; gap: 0.5rem; }
    .sc-track-row {
      display: grid;
      grid-template-columns: minmax(6rem, 1fr) minmax(5rem, 1fr) minmax(6rem, 1.3fr) auto;
      align-items: center;
      gap: 0.75rem;
      background: #f6f8fb;
      border-radius: 0.9rem;
      padding: 0.85rem 1rem;
    }
    .sc-track-header {
      background: #16385c;
      color: #fff;
      font-size: 0.72rem;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      border-radius: 0.75rem;
    }
    .sc-track-date { font-size: 0.9rem; font-weight: 700; color: #16385c; }
    .sc-track-fleet { font-size: 0.9rem; color: #475569; }
    .sc-track-race { font-size: 0.9rem; font-weight: 700; color: #0f172a; }
    .sc-track-cell { justify-self: end; }
    .sc-track-replay {
      display: inline-flex; align-items: center; gap: 0.3rem;
      background: #2f8ad0; color: #fff;
      font-size: 0.74rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.03em;
      border-radius: 9999px; padding: 0.42rem 0.9rem; text-decoration: none;
      transition: background 0.15s ease, transform 0.1s ease;
    }
    .sc-track-replay:hover { background: #2477b8; color: #fff; }
    .sc-track-replay:active { transform: scale(0.97); }
    .sc-track-replay svg { width: 0.8rem; height: 0.8rem; }
    .sc-track-empty { padding: 2rem; text-align: center; color: #94a3b8; font-size: 0.9rem; }
    @media (max-width: 900px) {
      .event-portal-panel .sc-live-2col { grid-template-columns: 1fr; }
    }
    .event-portal-panel .toa-doc-list { background: transparent; border: 0; overflow: visible; }
    .event-meteo-section { margin: 0; padding: 0; }
    .evn-section { padding: 0; margin: 0; }
    .evn-section .evn-heading { display: none; }
    .evn-section .evn-scroll-wrap { display: block; }
    .evn-section .evn-arrow, .evn-section .evn-cover-card { display: none !important; }
    .evn-section .evn-scroll-track {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 3px;
      overflow: visible;
      padding: 0;
    }
    .evn-section .evn-card { width: auto; min-width: 0; min-height: 240px; border-radius: 0; }
    .evn-section .evn-news-card:first-of-type { grid-column: span 2; grid-row: span 2; min-height: 480px; }
    .evn-section .evn-news-card:first-of-type .evn-news-title { font-size: clamp(1.35rem, 2.5vw, 2.35rem); max-width: 22ch; }
    .evn-section .evn-news-card:hover { transform: none; }
    .event-media-gallery { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 3px; background: #fff; }
    .event-media-tile { position: relative; display: block; aspect-ratio: 1.1; overflow: hidden; border: 0; padding: 0; background: #e5edf1; cursor: pointer; }
    .event-media-tile:first-child { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
    .event-media-tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
    .event-media-tile:hover img { transform: scale(1.04); }
    .event-media-tile span { position: absolute; left: 0; right: 0; bottom: 0; padding: .9rem; color: #fff; background: linear-gradient(transparent, rgba(6,22,38,.75)); font-size: .72rem; font-weight: 750; text-align: left; }
    .event-media-empty { padding: 2rem; background: #fff; color: #607282; }
    /* Lugar en la tarjeta de meteo (arriba, integrado) */
    .event-meteo-place {
      display: inline-flex; align-items: center; gap: 0.4rem;
      margin: 0 0 1.4rem;
      font-size: 1.15rem; font-weight: 800; color: #16385c; letter-spacing: -0.02em;
    }
    .event-meteo-place svg { width: 1.15rem; height: 1.15rem; color: #0071e3; }
    /* ── Galería de Media (limpia, tipo mosaico) ── */
    .event-gallery-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
      gap: 0.9rem;
    }
    .event-gallery-tile {
      position: relative;
      display: block;
      aspect-ratio: 4 / 3;
      overflow: hidden;
      border: 0;
      padding: 0;
      border-radius: 1rem;
      background: #e5edf1;
      cursor: pointer;
    }
    /* Las fotos del álbum externo son enlaces a la página del proveedor; las
       de noticia siguen siendo botones que abren el modal. Mismo aspecto. */
    a.event-gallery-tile { text-decoration: none; color: inherit; }
    /* Cada procedencia en su bloque: el álbum del club y las fotos que van
       adjuntas a las noticias no son lo mismo y no deben parecerlo. */
    .event-gallery-group + .event-gallery-group { margin-top: 2.2rem; }
    .event-portal-panel#event-panel-media .event-media-news-block {
      margin-top: clamp(3rem, 6vw, 5rem);
      padding-top: clamp(2rem, 4vw, 3.5rem);
      border-top: 1px solid #e1e8f0;
    }
    .event-media-videos-block {
      margin-top: clamp(3rem, 6vw, 5rem);
      padding-top: clamp(2rem, 4vw, 3.5rem);
      border-top: 1px solid #e1e8f0;
    }
    .event-video-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 0.9rem; }
    .event-video-card {
      display: grid;
      grid-template-columns: auto 1fr;
      align-items: center;
      gap: 0.25rem 0.7rem;
      min-height: 8.5rem;
      padding: 1.1rem;
      border: 1px solid #dce5ee;
      border-radius: 1rem;
      background: linear-gradient(135deg, #fff 0%, #f5f9fc 100%);
      color: #1e293b;
      text-decoration: none;
    }
    .event-video-card:hover { border-color: #7fb8dc; box-shadow: 0 12px 28px rgba(15, 55, 85, .1); }
    .event-video-card-play { grid-row: span 3; display: grid; width: 2.8rem; height: 2.8rem; place-items: center; border-radius: 50%; background: #e11d48; color: #fff; font-size: .9rem; }
    .event-video-card.is-tiktok .event-video-card-play { background: #111827; }
    .event-video-card span:not(.event-video-card-play) { color: #64748b; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
    .event-video-card strong { font-size: 1rem; }
    .event-video-card small { overflow: hidden; color: #64748b; font-size: .74rem; text-overflow: ellipsis; white-space: nowrap; }
    .event-video-empty { padding: 1.5rem; border: 1px dashed #cbd5e1; border-radius: 1rem; color: #64748b; text-align: center; }
    .event-video-empty p { margin: 0; }
    .event-gallery-group-title {
      margin: 0 0 0.85rem;
      color: #52616f;
      font-size: 0.76rem;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }
    .event-gallery-more { margin: 1.1rem 0 0; text-align: center; }
    .event-gallery-more a { color: #0b6ea7; font-size: .88rem; font-weight: 800; text-decoration: none; }
    .event-gallery-more a:hover { text-decoration: underline; }
    .event-gallery-tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
    .event-gallery-tile:hover img { transform: scale(1.05); }
    .event-gallery-cap {
      position: absolute;
      left: 0; right: 0; bottom: 0;
      display: grid;
      gap: 0.15rem;
      padding: 1.4rem 1rem 0.85rem;
      text-align: left;
      color: #fff;
      background: linear-gradient(transparent, rgba(6,22,38,.82));
    }
    .event-gallery-cap strong { font-size: 0.9rem; font-weight: 800; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
    .event-gallery-cap small { font-size: 0.72rem; font-weight: 600; opacity: 0.85; }
    .event-gallery-empty {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      padding: 4rem 1.5rem;
      color: #94a3b8;
    }
    .event-gallery-empty svg { width: 2.05rem; height: 2.05rem; color: #2f8ad0; margin-bottom: 0.9rem; padding: 1.35rem; box-sizing: content-box; border-radius: 50%; background: rgba(47, 138, 208, 0.12); }
    .event-gallery-empty-title { margin: 0; font-size: 1.05rem; font-weight: 800; color: #475569; }
    .event-gallery-empty-copy { margin: 0.4rem 0 0; font-size: 0.9rem; }

    /* Tema de la apariencia Simple y limpia. Estos overrides viven al final
       porque la ficha reutiliza componentes que antes llevaban azul fijo. */
    /* Portada que ya lleva su propio título: se ve tal cual, sin el velo oscuro. */
    .event-page-style--simple_clean .event-hero.is-plain-banner::before { background: none; }
    .event-page-style--simple_clean .event-topbar,
    .event-page-style--simple_clean .event-live-band { background: var(--event-accent-deep); }
    .event-page-style--simple_clean .eih-link,
    .event-page-style--simple_clean .eip-desc-text,
    .event-page-style--simple_clean .eip-dates-day,
    .event-page-style--simple_clean .eip-club-avatar span,
    .event-page-style--simple_clean .eip-club-name,
    .event-page-style--simple_clean .elb-select-label,
    .event-page-style--simple_clean .elb-select,
    .event-page-style--simple_clean .elb-crew-name,
    .event-page-style--simple_clean .elb-pts,
    .event-page-style--simple_clean .elb-btn,
    .event-page-style--simple_clean .elb-signal-label,
    .event-page-style--simple_clean .sc-track-date { color: var(--event-accent-dark); }
    /* Inicio: los títulos de Resultados, Directo y sus paneles siempre se
       leen en negro, sin depender del color elegido para la regata. */
    .event-page-style--simple_clean .elb-card-title,
    .event-page-style--simple_clean .sc-track-head h4 { color: #080b10; }
    .event-page-style--simple_clean .eih-link:hover { color: var(--event-accent); }
    .event-page-style--simple_clean .eih-link:focus-visible { outline-color: var(--event-accent); }
    .event-page-style--simple_clean .eih-media,
    .event-page-style--simple_clean .eip-club-cover,
    .event-page-style--simple_clean .event-story-feature-media,
    .event-page-style--simple_clean .event-story-card-media { background: linear-gradient(135deg, var(--event-accent-dark), var(--event-accent)); }
    .event-page-style--simple_clean .eip-timeline.has-end .eip-tl-row:first-child::before { background: linear-gradient(180deg, var(--event-accent), color-mix(in srgb, var(--event-accent) 20%, transparent)); }
    .event-page-style--simple_clean .eip-tl-marker.is-start { background: var(--event-accent); box-shadow: 0 0 0 5px color-mix(in srgb, var(--event-accent) 18%, transparent); }
    .event-page-style--simple_clean .eip-tl-marker.is-end { border-color: var(--event-accent-dark); }
    .event-page-style--simple_clean .eip-dates-tag { color: var(--event-accent); }
    .event-page-style--simple_clean .eip-club-btn,
    .event-page-style--simple_clean .event-showcase-cta,
    .event-page-style--simple_clean .sc-track-pill.is-active,
    .event-page-style--simple_clean .sc-track-action,
    .event-page-style--simple_clean .mx-tab.is-active { background: var(--event-accent); }
    .event-page-style--simple_clean .eip-club-btn:hover,
    .event-page-style--simple_clean .elb-btn:hover { background: var(--event-accent-pale); }
    .event-page-style--simple_clean .event-story-chip,
    .event-page-style--simple_clean .elb-title-icon { color: var(--event-accent-dark); background: var(--event-accent-pale); }
    .event-page-style--simple_clean .elb-select:focus { border-color: var(--event-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--event-accent) 18%, transparent); }
    .event-page-style--simple_clean .elb-signal-dot,
    .event-page-style--simple_clean .sc-track-day.is-active { background: var(--event-accent); }
    .event-page-style--simple_clean .sc-track-class-circle.is-active { border-color: var(--event-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--event-accent) 16%, transparent); }
    .event-page-style--simple_clean .event-gallery-empty svg { color: var(--event-accent); background: var(--event-accent-pale); }
    /* Media tiene la misma jerarquía en las tres apariencias: galería primero
       y el mosaico editorial de noticias debajo. No depende de Inicio. */
    .event-page-style--simple_clean #event-panel-media .event-media-news-block,
    .event-page-style--old_school #event-panel-media .event-media-news-block,
    .event-page-style--championship #event-panel-media .event-media-news-block, .event-page-style--new #event-panel-media .event-media-news-block {
      display: block !important;
      clear: both;
      width: 100%;
    }
    .event-page-style--old_school #event-panel-media .event-media-news-block {
      margin-top: clamp(2.5rem, 5vw, 4rem);
      padding-top: clamp(2rem, 4vw, 3.5rem);
      border-top: 1px solid #d7e0e8;
    }
    .event-page-style--old_school #event-panel-media .event-media-news-block .event-stories-title {
      color: #080b10;
      text-transform: uppercase;
    }

    #event-news + .evn-modal, .event-meteo-section + .ema-modal { z-index: 160; }
    .evn-section + .evn-modal + .evn-section { display: none; }
    @media (max-width: 760px) {
      .event-hero, .event-hero-inner { min-height: 380px; }
      .event-hero-bottom { min-height: 380px; padding-top: 0; }
      .event-hero-copy { padding: 1.4rem; }
      .event-portal-nav { justify-content: flex-start; }
      .event-portal-panel .event-general-modal-grid { grid-template-columns: 1fr; }
      .event-portal-panel .event-general-modal-item-full { grid-column: auto; }
      .evn-section .evn-scroll-track { grid-template-columns: 1fr 1fr; }
      .evn-section .evn-news-card:first-of-type { min-height: 360px; }
      .event-media-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }

    /* ──────────────────────────────────────────────────────────────────
       OLD SCHOOL
       Portal clásico de regata: portada corta + barra permanente y una
       portada editorial. El contenido es exactamente el mismo del evento;
       solo cambia su jerarquía y tratamiento visual.
       ────────────────────────────────────────────────────────────────── */
    .event-page-style--old_school {
      max-width: none;
      width: 100%;
      padding-bottom: 0;
      background: #f4f4f6;
      color: #17223d;
    }
    .event-page-style--old_school .event-hero {
      order: 1;
      display: block !important;
      width: 100%;
      margin: 0;
      min-height: 250px;
      border-radius: 0;
      background-position: center;
    }
    .event-page-style--old_school .event-hero::before {
      background: linear-gradient(90deg, rgba(23, 20, 56, .38), rgba(23, 20, 56, .06) 62%, rgba(23, 20, 56, .2));
    }
    .event-page-style--old_school .event-hero,
    .event-page-style--old_school .event-hero-inner { min-height: 250px; }
    .event-page-style--old_school .event-hero-inner {
      justify-content: flex-end;
      padding: 1.25rem clamp(1.25rem, 4vw, 4rem);
    }
    .event-page-style--old_school .event-hero-organizer,
    .event-page-style--old_school .event-hero-top,
    .event-page-style--old_school .event-hero-kicker,
    .event-page-style--old_school .event-hero-subtitle,
    .event-page-style--old_school .event-hero-pills,
    .event-page-style--old_school .event-hero-cta-row { display: none !important; }
    .event-page-style--old_school .event-hero-bottom { padding: 0; }
    .event-page-style--old_school .event-hero-title {
      display: block;
      max-width: 20ch;
      color: #fff;
      font-size: clamp(1.7rem, 3.4vw, 3.5rem);
      line-height: 1;
      letter-spacing: -.045em;
      text-shadow: 0 2px 18px rgba(9, 12, 35, .62);
    }
    .event-page-style--old_school .event-hero-title.is-hidden-on-banner { display: none; }
    .event-page-style--old_school .event-topbar {
      order: 2;
      position: sticky;
      top: 0;
      z-index: 30;
      width: 100%;
      min-height: 66px;
      margin: 0;
      padding: 0;
      gap: 0;
      background: var(--event-accent-deep);
      border-bottom: 4px solid var(--event-accent);
      box-shadow: 0 2px 10px rgba(16, 20, 50, .22);
    }
    .event-page-style--old_school .event-topbar .event-portal-nav {
      justify-content: center;
      min-height: 62px;
      background: transparent;
      overflow-x: auto;
    }
    .event-page-style--old_school .event-topbar .event-portal-nav-item {
      align-self: stretch;
      border-radius: 0;
      padding: 0 1.35rem;
      color: rgba(255, 255, 255, 0.66);
      font-size: .82rem;
      font-weight: 400;
      letter-spacing: 0;
      text-transform: uppercase;
    }
    .event-page-style--old_school .event-topbar .event-portal-nav-item:hover,
    .event-page-style--old_school .event-topbar .event-portal-nav-item:focus-visible { background: rgba(255, 255, 255, 0.09); color: #fff; }
    .event-page-style--old_school .event-topbar .event-portal-nav-item.is-primary,
    .event-page-style--old_school .event-topbar .event-portal-nav-item.is-primary:hover,
    .event-page-style--old_school .event-topbar .event-portal-nav-item.is-primary:focus-visible {
      background: rgba(255, 255, 255, 0.14);
      color: #fff;
    }
    .event-page-style--old_school .event-topbar-actions {
      margin-left: auto;
      padding-right: clamp(.75rem, 2vw, 1.7rem);
    }
    .event-page-style--old_school .event-topbar-login {
      background: #fff;
      color: var(--event-accent-deep);
      padding: .5rem .85rem;
      font-size: .72rem;
    }
    .event-page-style--old_school .event-topbar-login-icon { background: var(--event-accent-dark); }

    /* En pantallas estrechas conservamos la navegación desplazable para que
       ningún apartado quede recortado, igual que en la otra apariencia. */
    @media (max-width: 900px) {
      .event-page-style--old_school .event-topbar .event-portal-nav { justify-content: flex-start; }
    }
    .event-page-style--old_school .event-topbar-social a {
      width: 2rem;
      height: 2rem;
      background: rgba(255,255,255,.14);
      color: #fff;
    }
    .event-page-style--old_school .event-portal-panels {
      order: 3;
      width: 100%;
      padding: 0;
      background: #f4f4f6;
    }
    .event-page-style--old_school .event-portal-panel { max-width: none; }
    .event-page-style--old_school #event-panel-general {
      display: flex;
      flex-direction: column;
      gap: 0;
    }
    .old-school-meteo-strip { display: none; }
    .event-page-style--old_school .old-school-meteo-strip {
      order: 0;
      display: grid;
      grid-template-columns: 74px minmax(12rem, 1fr) minmax(11rem, .9fr) minmax(20rem, 1.35fr) auto;
      align-items: center;
      gap: clamp(.85rem, 2vw, 2rem);
      min-height: 100px;
      padding: .85rem clamp(1rem, 4vw, 4rem);
      background: #fff;
      border-bottom: 5px solid var(--event-accent-soft);
      color: var(--event-accent-deep);
    }
    .event-page-style--old_school .old-school-meteo-date {
      display: grid;
      place-items: center;
      align-self: stretch;
      padding: .38rem;
      border-top: 4px solid var(--event-accent);
      border-radius: 8px;
      background: #fff;
      box-shadow: 0 3px 8px rgba(27, 100, 140, .18);
      line-height: 1;
      text-align: center;
    }
    .event-page-style--old_school .old-school-meteo-date span { font-size: .65rem; font-weight: 850; text-transform: uppercase; }
    .event-page-style--old_school .old-school-meteo-date strong { font-size: 2rem; font-weight: 750; }
    .event-page-style--old_school .old-school-meteo-place,
    .event-page-style--old_school .old-school-meteo-reading,
    .event-page-style--old_school .old-school-meteo-fleets { min-width: 0; display: grid; gap: .22rem; }
    .event-page-style--old_school .old-school-meteo-place strong,
    .event-page-style--old_school .old-school-meteo-reading strong,
    .event-page-style--old_school .old-school-meteo-fleets strong { font-size: .9rem; color: var(--event-accent-dark); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .event-page-style--old_school .old-school-meteo-place span,
    .event-page-style--old_school .old-school-meteo-fleets span,
    .event-page-style--old_school .old-school-meteo-reading small { color: #64748b; font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
    .event-page-style--old_school .old-school-meteo-reading { grid-template-columns: 2.6rem 1fr; align-items: center; }
    .event-page-style--old_school .old-school-meteo-reading-icon { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: #fff4c4; box-shadow: 0 2px 6px rgba(208, 155, 30, .22); font-size: 1.45rem; }
    .event-page-style--old_school .old-school-meteo-conditions {
      display: flex;
      align-items: center;
      gap: .7rem;
      min-width: 0;
      padding-left: clamp(1.25rem, 3vw, 3rem);
      border-left: 1px solid color-mix(in srgb, var(--event-accent) 32%, transparent);
    }
    .event-page-style--old_school .old-school-meteo-condition {
      display: grid;
      grid-template-columns: 1.75rem minmax(0, 1fr);
      align-items: center;
      gap: .25rem;
      min-width: 0;
      padding: .3rem .45rem;
      border-radius: 5px;
      background: rgba(255,255,255,.84);
      box-shadow: 0 2px 6px rgba(34, 111, 151, .1);
    }
    .event-page-style--old_school .old-school-meteo-condition i {
      display: grid;
      place-items: center;
      width: 1.55rem;
      height: 1.55rem;
      border-radius: 50%;
      background: var(--event-accent-pale);
      color: var(--event-accent-dark);
      font-size: .95rem;
      font-style: normal;
      font-weight: 900;
    }
    .event-page-style--old_school .old-school-meteo-condition span { display: grid; gap: .05rem; min-width: 0; }
    .event-page-style--old_school .old-school-meteo-condition small { color: #64748b; font-size: .56rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
    .event-page-style--old_school .old-school-meteo-condition strong { color: var(--event-accent-dark); font-size: .7rem; white-space: nowrap; }
    .event-page-style--old_school .old-school-meteo-condition:nth-child(2) i { background: #fff0d6; color: #d97706; }
    .event-page-style--old_school .old-school-meteo-condition:nth-child(3) i { background: #dceeff; color: #2563a8; }
    .event-page-style--old_school .old-school-meteo-open {
      border: 0;
      border-radius: 999px;
      padding: .65rem 1rem;
      background: var(--event-accent);
      color: #fff;
      font-size: .72rem;
      font-weight: 850;
      text-transform: uppercase;
      cursor: pointer;
      box-shadow: 0 3px 8px color-mix(in srgb, var(--event-accent) 30%, transparent);
    }
    /* La franja de resultados y directo es el foco del inicio, como en un
       portal de regata clásico. */
    .event-page-style--old_school #event-panel-general .event-live-band {
      order: 1;
      margin: 0;
      padding: clamp(1.3rem, 3vw, 3.2rem) clamp(1rem, 4vw, 4rem);
      background: linear-gradient(135deg, var(--event-accent) 0%, var(--event-accent-deep) 58%, var(--event-accent-dark) 100%);
    }
    .event-page-style--old_school .event-live-band-inner {
      max-width: 1660px;
      margin: 0 auto;
      gap: clamp(1rem, 2.5vw, 2rem);
    }
    .event-page-style--old_school .elb-card {
      border-radius: 14px;
      border: 0;
      box-shadow: 0 10px 24px rgba(25, 14, 47, .22);
      background: #edf2f6;
    }
    .event-page-style--old_school .elb-card-head {
      background: #dce5eb;
      border-bottom-color: #c5d1db;
      padding: 1rem 1.2rem;
    }
    .event-page-style--old_school .elb-card-title,
    .event-page-style--old_school .elb-result-row,
    .event-page-style--old_school .elb-signal-copy strong { color: #20253d; }
    .event-page-style--old_school .elb-select-box { border-radius: 4px; }
    .event-page-style--old_school .elb-result-row,
    .event-page-style--old_school .elb-signal-row { background: #fff; }
    .event-page-style--old_school .elb-card-foot { background: transparent; }
    .event-page-style--old_school .elb-btn {
      border-radius: 999px;
      background: #fff;
      color: var(--event-accent-dark);
      box-shadow: 0 2px 5px rgba(19, 21, 50, .16);
    }
    .event-page-style--old_school .elb-btn:hover { background: var(--event-accent-pale); }
    .event-page-style--old_school .elb-signal-dot { background: var(--event-accent); }
    /* Noticias inmediatamente bajo el bloque live. Conservan exactamente el
       mismo mosaico editorial que la apariencia Simple y limpia. */
    .event-page-style--old_school #event-panel-general .event-stories-block {
      order: 2;
      width: 100%;
      margin: 0;
      padding: clamp(1.5rem, 4vw, 4rem) clamp(1rem, 4vw, 4.4rem);
      background: #fff;
    }
    .event-page-style--old_school .event-stories-title {
      max-width: 1560px;
      margin: 0 auto 1.55rem;
      color: #080b10;
      font-size: clamp(1.45rem, 2.2vw, 2.2rem);
      font-weight: 900;
      letter-spacing: -.065em;
      line-height: .9;
    }
    .event-page-style--old_school .event-stories-grid { max-width: 1560px; margin: 0 auto; gap: 1.5rem; }
    .event-page-style--old_school .event-story-feature,
    .event-page-style--old_school .event-story-card { border-radius: 1.15rem; }
    .event-page-style--old_school #event-panel-general .event-intro-card {
      order: 3;
      max-width: 1660px;
      width: calc(100% - 2rem);
      margin: 0 auto clamp(2rem, 4vw, 4rem);
      border-radius: 0;
      background: #fff;
      box-shadow: none;
    }
    /* En el inicio Old School solo quedan los cuatro bloques de la portada.
       La información general sigue disponible desde Inicio al navegar en la
       versión Simple y limpia, pero no alarga esta portada clásica. */
    .event-page-style--old_school #event-panel-general .event-intro-card { display: none; }
    .event-page-style--old_school #event-panel-general .event-social-block {
      order: 3;
      width: 100%;
      margin: 0;
      padding: clamp(2rem, 4vw, 4rem) clamp(1rem, 4vw, 4rem);
      background: #fff;
    }
    .event-page-style--old_school #event-panel-general .event-social-grid,
    .event-page-style--old_school #event-panel-general .event-social-follow {
      max-width: 1660px;
      margin-left: auto;
      margin-right: auto;
    }
    .old-school-social-title { display: none; }
    .event-page-style--old_school .old-school-social-title {
      display: block;
      max-width: 1660px;
      margin: 0 auto 1.25rem;
      color: #080b10;
      font-size: clamp(1.3rem, 2vw, 2rem);
      font-weight: 800;
      letter-spacing: -.035em;
      text-transform: uppercase;
    }
    .event-page-style--old_school .event-showcase { display: none; }
    .event-page-style--old_school #event-panel-general .event-partners-block {
      order: 4;
      width: 100%;
      margin: 0;
      padding: clamp(2rem, 4vw, 4rem) clamp(1rem, 4vw, 4rem) clamp(2.5rem, 5vw, 5rem);
      background: #fff;
    }
    .event-page-style--old_school .event-partners-title {
      max-width: 1660px;
      margin-left: auto;
      margin-right: auto;
      color: #080b10;
      font-size: clamp(1.25rem, 2vw, 1.7rem);
      text-transform: uppercase;
    }
    .event-page-style--old_school .event-sponsor-group {
      max-width: 1660px;
      margin-left: auto;
      margin-right: auto;
    }
    .event-page-style--old_school .event-sponsor-group-title { color: #080b10; text-transform: uppercase; }
    .event-page-style--old_school .event-partner { border-radius: 0; box-shadow: none; }
    /* El resto de secciones conserva la información actual con una piel
       consistente: navegación y portada no desaparecen al cambiar de panel. */
    .event-page-style--old_school.event-portal-section-open .event-hero { display: block !important; }
    .event-page-style--old_school .event-portal-panel:not(#event-panel-general) {
      max-width: 1660px;
      margin: 0 auto;
      padding: clamp(1.25rem, 3vw, 3rem) clamp(1rem, 4vw, 4rem);
      background: #fff;
    }
    /* Los títulos que descansan sobre blanco deben conservar legibilidad,
       independientemente del color de acento elegido para la regata. */
    .event-detail-shell .event-portal-panel-heading h2,
    .event-detail-shell .event-portal-panel-heading.is-headline h2,
    .event-detail-shell .event-stories-title,
    .event-detail-shell .event-partners-title,
    .event-detail-shell .event-sponsor-group-title,
    .event-detail-shell .old-school-social-title { color: #080b10; }

    /* ──────────────────────────────────────────────────────────────────
       CHAMPIONSHIP
       Una tercera apariencia de campeonato: cabecera institucional oscura,
       portada inmersiva y cierre de patrocinadores. Los paneles conservan
       exactamente los mismos datos y controles de SailIQ.
       ────────────────────────────────────────────────────────────────── */
    .event-page-style--championship {
      display: flex;
      flex-direction: column;
      width: 100%; max-width: none; padding: 0;
      background: #fff; color: #102e4a;
    }
    .event-page-style--championship .event-topbar {
      order: 1; position: sticky; top: 0; z-index: 40;
      display: flex; min-height: 6.15rem; margin: 0; padding: 0 clamp(1rem, 4vw, 4rem);
      background: #092d4b; border: 0;
      box-shadow: 0 2px 14px rgba(2, 16, 30, .25);
    }
    .event-page-style--championship .championship-header-logo {
      position: absolute; top: 0; bottom: 0; left: clamp(1rem, 4vw, 4rem); z-index: 1;
      display: flex; width: clamp(12rem, 19vw, 20rem); align-items: center; justify-content: center;
      padding: .65rem clamp(.8rem, 1.5vw, 1.5rem);
    }
    .event-page-style--championship .championship-header-logo img { display: block; width: 100%; max-height: 5.15rem; object-fit: contain; }
    .event-page-style--championship .event-portal-nav { width: 100%; min-height: 6.15rem; gap: 0; justify-content: center; }
    .event-page-style--championship .event-portal-nav-item {
      align-self: stretch; border-radius: 0; padding: 0 clamp(.8rem, 1.55vw, 1.5rem);
      color: rgba(255, 255, 255, 0.64); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: clamp(1rem, 1.15vw, 1.18rem); font-weight: 400; letter-spacing: 0; text-transform: uppercase;
    }
    .event-page-style--championship .event-portal-nav-icon,
    .event-page-style--championship .event-portal-live-dot { display: none; }
    .event-page-style--championship .event-portal-nav-item:hover { background: rgba(255, 255, 255, 0.09); color: #fff; }
    .event-page-style--championship .event-portal-nav-item.is-primary,
    .event-page-style--championship .event-portal-nav-item.is-primary:hover,
    .event-page-style--championship .event-portal-nav-item.is-primary:focus-visible {
      background: rgba(255, 255, 255, 0.14);
      color: #fff;
    }
    .event-page-style--championship .event-topbar-actions { position: absolute; right: clamp(1rem, 4vw, 4rem); margin-left: 0; padding-left: 0; }
    .event-page-style--championship .event-topbar-login { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.42); }
    .event-page-style--championship .event-topbar-social { display: flex; gap: .38rem; }
    .event-page-style--championship .event-topbar-social a {
      width: 2.2rem; height: 2.2rem; border-radius: 999px; background: rgba(255,255,255,.12); color: #fff;
      border: 1px solid rgba(255,255,255,.24);
    }
    .event-page-style--championship .event-topbar-social a:hover { background: var(--event-accent); border-color: var(--event-accent); transform: translateY(-2px); }
    .event-page-style--championship .event-topbar-social a svg { width: 1rem; height: 1rem; }
    .event-page-style--championship .event-hero {
      order: 2; width: 100%; min-height: max(84vh, 760px); margin: 0; border-radius: 0;
      background-position: center; background-color: #123c5a;
    }
    .event-page-style--championship .event-hero::before { background: transparent; }
    /* Título abajo a la izquierda, alineado con el logo del organizador, como
       en «Simple y limpia». */
    .event-page-style--championship .event-hero-inner { min-height: max(84vh, 760px); padding: 1.4rem clamp(1rem, 4vw, 4rem) clamp(2rem, 5vw, 3.5rem); justify-content: flex-end; }
    .event-page-style--championship .event-hero-organizer {
      position: absolute; top: 1.2rem; left: clamp(1rem, 4vw, 4rem); width: 7.2rem; height: 4.5rem;
      border-radius: 0; background: rgba(7, 43, 72, .92); border-right: 1px solid rgba(255,255,255,.35);
      box-shadow: none;
    }
    .event-page-style--championship .event-hero-organizer img { object-fit: contain; padding: .5rem; }
    .event-page-style--championship .event-hero-top, .event-page-style--championship .event-hero-kicker { display: none; }
    .event-page-style--championship .event-hero-bottom { display: flex !important; width: 100%; margin: 0; flex-direction: column; align-items: flex-start; justify-content: flex-end; text-align: left; }
    .event-page-style--championship .event-hero-copy { display: grid !important; width: 100%; max-width: 780px; gap: .9rem; padding: 0; justify-items: start; text-align: left; }
    /* Mismo título que «Simple y limpia» (tipografía, tamaño, peso y sitio).
       Esta portada no lleva degradado: una sombra suave lo separa de la foto. */
    .event-page-style--championship .event-hero-title { position: static; max-width: 18ch; margin: 0; color: #fff; text-shadow: 0 2px 22px rgba(0,0,0,.45), 0 1px 3px rgba(0,0,0,.35); }
    .event-page-style--championship .championship-hero-date { position: static; display: block !important; width: auto; margin: 0; color: #fff; font-family: "Arial Narrow", "Helvetica Neue", Arial, sans-serif; font-size: clamp(1rem, 1.35vw, 1.25rem); font-style: italic; font-weight: 900; line-height: 1.1; text-align: left; text-shadow: 2px 3px 0 rgba(0,0,0,.76); }
    .event-page-style--championship .event-hero-subtitle { display: none; }
    .event-page-style--championship .event-hero-pills { display: none !important; }
    .event-page-style--championship .event-hero-cta-row { position: static; display: flex !important; width: auto; justify-content: flex-start; margin: 1.4rem 0 0; padding: 0; transform: none; }
    .event-page-style--championship .event-hero-action { display: none; }
    .event-page-style--championship .event-hero-action-secondary { display: inline-flex !important; min-width: min(100%, 15rem); min-height: 3.55rem; justify-content: center; padding: .7rem 1.8rem; border: 1px solid rgba(255,255,255,.92); border-radius: 999px; background: rgba(4, 20, 35, .15); color: #fff; font-family: "Arial Narrow", "Roboto Condensed", Arial, sans-serif; font-size: 1.08rem; font-weight: 800; letter-spacing: .01em; text-transform: uppercase; backdrop-filter: blur(3px); }
    .event-page-style--championship .event-hero-action-secondary:hover { background: rgba(255,255,255,.16); }
    .event-page-style--championship .event-portal-panels { order: 3; width: 100%; padding: 0; background: #fff; }
    .event-page-style--championship .event-portal-panel:not(#event-panel-general) { max-width: 1500px; margin: 0 auto; padding: clamp(2rem, 5vw, 5rem) clamp(1rem, 5vw, 4rem); }
    .event-page-style--championship #event-panel-general { display: flex; flex-direction: column; }
    .event-page-style--championship .championship-quick-links, .event-page-style--new .championship-quick-links {
      order: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.25vw, 2.7rem);
      width: min(calc(100% - 3rem), 1320px); margin: 0 auto; padding: clamp(4rem, 7vw, 7.5rem) 0 clamp(4.5rem, 7vw, 7.5rem);
    }
    .event-page-style--championship .championship-quick-link, .event-page-style--new .championship-quick-link {
      position: relative; display: block; aspect-ratio: 4 / 5; min-height: 0; padding: 0; overflow: hidden;
      border: 0; background: #123955; cursor: pointer; isolation: isolate;
    }
    .event-page-style--championship .championship-quick-link-media, .event-page-style--new .championship-quick-link-media,
    .event-page-style--championship .championship-quick-link-media::after, .event-page-style--new .championship-quick-link-media::after { position: absolute; inset: 0; }
    .event-page-style--championship .championship-quick-link-media, .event-page-style--new .championship-quick-link-media { z-index: 0; display: block; background: linear-gradient(145deg, #315c76, #082b47); }
    .event-page-style--championship .championship-quick-link-media::after, .event-page-style--new .championship-quick-link-media::after { content: ""; background: linear-gradient(180deg, rgba(2,23,39,.08), rgba(2,23,39,.42)); transition: background .25s ease; }
    .event-page-style--championship .championship-quick-link-media img, .event-page-style--new .championship-quick-link-media img { width: 100%; height: 100%; object-fit: cover; object-position: center center; transition: transform .4s ease; }
    .event-page-style--championship .championship-quick-link-label, .event-page-style--new .championship-quick-link-label {
      position: absolute; top: 50%; left: 50%; display: inline-flex; align-items: center; justify-content: center; min-width: min(72%, 18rem);
      min-height: 3.65rem; padding: .65rem 1.5rem; transform: translate(-50%, -50%); border-radius: 999px;
      background: #092d4b; color: #fff; font-family: "Arial Narrow", "Roboto Condensed", Arial, sans-serif;
      font-size: clamp(1rem, 1.45vw, 1.35rem); font-weight: 800; letter-spacing: -.025em; text-transform: uppercase;
      z-index: 1; box-shadow: 0 7px 22px rgba(0,0,0,.22);
    }
    .event-page-style--championship .championship-quick-link:hover .championship-quick-link-media img, .event-page-style--new .championship-quick-link:hover .championship-quick-link-media img { transform: scale(1.045); }
    .event-page-style--championship .championship-quick-link:hover .championship-quick-link-media::after, .event-page-style--new .championship-quick-link:hover .championship-quick-link-media::after { background: linear-gradient(180deg, rgba(2,23,39,.02), rgba(2,23,39,.25)); }
    .event-page-style--championship #event-panel-general .event-live-band, .event-page-style--new #event-panel-general .event-live-band,
    .event-page-style--championship .event-showcase, .event-page-style--new .event-showcase { display: none !important; }
    /* Bloque del club y fechas, clonado de Simple y limpia: va entre la
       portada y las tres tarjetas de acceso. */
    .event-page-style--championship #event-panel-general .event-intro-card { order: -1; width: min(calc(100% - 3rem), 1320px); margin: clamp(3rem, 6vw, 5.5rem) auto 0; }
    .event-page-style--new #event-panel-general .event-intro-card { order: -1; width: min(calc(100% - 3rem), 1320px); margin: clamp(3rem, 6vw, 5.5rem) auto 0; }
    .event-page-style--championship .championship-quick-links, .event-page-style--new .championship-quick-links { padding-top: clamp(2.5rem, 4.5vw, 4.5rem); }
    .event-page-style--championship .eih-link, .event-page-style--new .eih-link { color: var(--event-accent-dark); }
    .event-page-style--championship .eih-link:hover, .event-page-style--new .eih-link:hover { color: var(--event-accent); }
    .event-page-style--championship .eih-link:focus-visible, .event-page-style--new .eih-link:focus-visible { outline-color: var(--event-accent); }
    .event-page-style--championship .eih-media, .event-page-style--new .eih-media { background: linear-gradient(135deg, var(--event-accent-dark), var(--event-accent)); }
    .event-page-style--championship #event-panel-general .event-stories-block, .event-page-style--new #event-panel-general .event-stories-block { order: 1; width: min(100% - 3rem, 1320px); margin: 0 auto; padding: 0 0 clamp(4rem, 7vw, 7.5rem); background: #fff; }
    .event-page-style--championship #event-panel-media .event-media-news-block, .event-page-style--new #event-panel-media .event-media-news-block {
      width: min(100%, 1320px);
      margin: clamp(3.5rem, 7vw, 6rem) auto 0;
      padding-top: clamp(2.5rem, 5vw, 4.5rem);
      border-top: 1px solid #b6c3cd;
    }
    .event-page-style--championship #event-panel-media .event-media-news-block .event-stories-title, .event-page-style--new #event-panel-media .event-media-news-block .event-stories-title {
      color: #092d4b;
      text-align: center;
      text-transform: uppercase;
    }
    .event-page-style--championship #event-panel-general .event-social-block, .event-page-style--new #event-panel-general .event-social-block { order: 2; width: min(100% - 3rem, 1320px); margin: 0 auto; padding: clamp(4rem, 7vw, 7.5rem) 0; }
    .event-page-style--championship #event-panel-general .event-partners-block, .event-page-style--new #event-panel-general .event-partners-block { order: 3; margin: 0; padding: clamp(3rem, 6vw, 6rem) max(1rem, calc((100% - 1320px) / 2)); background: #fff; border-top: 1px solid #b6c3cd; }
    .event-page-style--championship .event-partners-title, .event-page-style--new .event-partners-title, .event-page-style--championship .event-sponsor-group-title, .event-page-style--new .event-sponsor-group-title { color: #092d4b; text-align: center; text-transform: uppercase; }
    .event-page-style--championship .event-partner, .event-page-style--new .event-partner { border-radius: 0; box-shadow: none; }
    .event-page-style--championship .championship-event-footer { order: 4; width: 100vw; margin: 0 calc(50% - 50vw); background: #fff; color: #092d4b; }
    .championship-event-footer-main {
      display: flex; min-height: 20rem; flex-direction: column; align-items: center; justify-content: center;
      padding: clamp(3rem, 6vw, 5.5rem) 1.5rem; background: #092d4b; color: #fff; text-align: center;
    }
    .championship-event-footer-profile {
      display: grid; width: 8rem; height: 8rem; place-items: center; overflow: hidden; border-radius: 50%;
      background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.38); color: #fff; font-size: 3rem; font-weight: 900;
    }
    .championship-event-footer-profile img { width: 100%; height: 100%; object-fit: cover; }
    .championship-event-footer-name { max-width: 36rem; margin: 1rem 0 1.5rem; font-family: "Arial Narrow", "Helvetica Neue", Arial, sans-serif; font-size: clamp(1.35rem, 2vw, 2rem); font-weight: 900; letter-spacing: -.04em; }
    .championship-event-footer-social:not(.championship-event-footer-social--legacy) { display: flex; flex-wrap: wrap; justify-content: center; gap: .65rem; }
    .championship-event-footer-social a {
      display: inline-flex; width: 2.7rem; height: 2.7rem; align-items: center; justify-content: center; border-radius: .35rem;
      background: var(--event-accent); color: #fff; transition: transform .16s ease, background .16s ease;
    }
    .championship-event-footer-social a:hover { background: #fff; color: #092d4b; transform: translateY(-2px); }
    .championship-event-footer-social svg { width: 1.25rem; height: 1.25rem; }
    .championship-event-footer-legal {
      display: flex; width: min(100% - 3rem, 1320px); min-height: 6.5rem; margin: 0 auto; align-items: center; justify-content: space-between;
      gap: 1.5rem; color: #25425d; font-size: .95rem;
    }
    .championship-event-footer-legal nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 1.1rem; }
    .championship-event-footer-legal a { color: inherit; text-decoration: none; }
    .championship-event-footer-legal a:hover { color: var(--event-accent); }
    .event-page-style--simple_clean .event-standard-footer,
    .event-page-style--old_school .event-standard-footer { order: 5; width: 100vw; margin: 0 calc(50% - 50vw); }
    .event-page-style--simple_clean .event-standard-footer .championship-event-footer-main,
    .event-page-style--old_school .event-standard-footer .championship-event-footer-main { background: var(--event-accent-deep); }
    body:has(.event-detail-shell) > footer { display: none; }
    @media (max-width: 900px) {
      .event-page-style--championship .event-topbar { padding: 0; }
      .event-page-style--championship .championship-header-logo { width: 8.5rem; padding: .5rem .6rem; }
      .event-page-style--championship .championship-header-logo img { max-height: 3.35rem; }
      .event-page-style--championship .event-portal-nav { justify-content: flex-start; overflow-x: auto; }
      .event-page-style--championship .event-portal-nav-item { padding: 0 1rem; font-size: .78rem; white-space: nowrap; }
      .event-page-style--championship .event-topbar-actions { display: none; }
      .event-page-style--championship .event-hero, .event-page-style--championship .event-hero-inner { min-height: 42rem; }
      .event-page-style--championship .event-hero-inner { padding: 1.25rem 1.25rem 1.75rem; }
      .event-page-style--championship .event-hero-organizer { width: 5.6rem; height: 3.4rem; top: .7rem; left: .7rem; }
      .event-page-style--championship .event-hero-bottom { width: 100%; }
      .event-page-style--championship .event-hero-copy { gap: 1rem; }
      .event-page-style--championship .event-hero-title { max-width: 15ch; }
      .event-page-style--championship .championship-quick-links, .event-page-style--new .championship-quick-links { width: min(100% - 2rem, 42rem); gap: 1rem; padding: 2rem 0 4rem; }
      .event-page-style--championship #event-panel-general .event-intro-card { width: min(100% - 2rem, 42rem); margin-top: 2rem; }
      .event-page-style--new #event-panel-general .event-intro-card { width: min(100% - 2rem, 42rem); margin-top: 2rem; }
      .event-page-style--championship .championship-quick-link, .event-page-style--new .championship-quick-link { min-height: 0; }
      .championship-event-footer-main { min-height: 16rem; }
    }
    @media (max-width: 640px) {
      .event-page-style--championship .championship-quick-links, .event-page-style--new .championship-quick-links { grid-template-columns: 1fr; }
      .event-page-style--championship .championship-quick-link, .event-page-style--new .championship-quick-link { min-height: 0; }
      .event-page-style--championship #event-panel-general .event-stories-block, .event-page-style--new #event-panel-general .event-stories-block,
      .event-page-style--championship #event-panel-general .event-social-block, .event-page-style--new #event-panel-general .event-social-block { width: min(100% - 2rem, 42rem); }
      .championship-event-footer-legal { width: min(100% - 2rem, 42rem); min-height: 0; padding: 1.4rem 0; flex-direction: column; align-items: center; text-align: center; }
      .championship-event-footer-legal nav { justify-content: center; }
    }
    @media (max-width: 760px) {
      .event-page-style--old_school .event-hero,
      .event-page-style--old_school .event-hero-inner { min-height: 170px; }
      .event-page-style--old_school .event-topbar { min-height: 54px; }
      .event-page-style--old_school .event-topbar .event-portal-nav { min-height: 50px; }
      .event-page-style--old_school .event-topbar .event-portal-nav-item { padding: 0 .85rem; font-size: .68rem; }
      .event-page-style--old_school .event-topbar-actions { display: none; }
      .event-page-style--old_school #event-panel-general .event-intro-card { width: calc(100% - 1.25rem); }
      .event-page-style--old_school .old-school-meteo-strip {
        grid-template-columns: 60px minmax(0, 1fr) auto;
        min-height: 78px;
        gap: .7rem;
        padding: .65rem;
      }
      .event-page-style--old_school .old-school-meteo-reading,
      .event-page-style--old_school .old-school-meteo-conditions { display: none; }
      .event-page-style--old_school .old-school-meteo-date strong { font-size: 1.5rem; }
      .event-page-style--old_school .old-school-meteo-open { padding: .55rem .7rem; font-size: .64rem; }
    }

    /* ══ Responsive de la página pública del evento ══════════════════════
       Ajustes de móvil y tableta comunes a las tres apariencias
       (simple_clean, old_school, championship). Van al final para ganar a
       las reglas base sin tocarlas. */

    /* Menú de secciones: se desliza en horizontal; un degradado avisa de que
       hay más pestañas a un lado (las clases las pone el script). */
    .event-portal-nav { scrollbar-width: none; scroll-behavior: smooth; }
    .event-portal-nav::-webkit-scrollbar { display: none; }
    .event-portal-nav.has-more-end { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 3rem), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 3rem), transparent); }
    .event-portal-nav.has-more-start { -webkit-mask-image: linear-gradient(90deg, transparent, #000 3rem); mask-image: linear-gradient(90deg, transparent, #000 3rem); }
    .event-portal-nav.has-more-start.has-more-end { -webkit-mask-image: linear-gradient(90deg, transparent, #000 3rem, #000 calc(100% - 3rem), transparent); mask-image: linear-gradient(90deg, transparent, #000 3rem, #000 calc(100% - 3rem), transparent); }

    /* Clases sin logo: el nombre entero en una píldora. Con las cuatro
       primeras letras «Optimist Sub 16» y «Optimist Sub 13» eran iguales. */
    .pub-class-icon.is-text,
    .toa-class-circle.is-text,
    .sc-track-class-circle.is-text {
      width: auto; min-width: 0; max-width: 100%; height: auto; min-height: 2.5rem;
      padding: .45rem .95rem; border-radius: 999px;
    }
    .sc-track-class-circle.is-text { min-height: 2.25rem; padding: .35rem .8rem; }
    .pub-class-icon.is-text .pub-class-icon-txt,
    .toa-class-circle.is-text span,
    .sc-track-class-circle.is-text span {
      font-size: .74rem; font-weight: 800; letter-spacing: .01em; line-height: 1.15;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 16rem;
    }

    /* Tarjetas de Inicio: si el selector de clase no cabe junto al título
       (columna estrecha de «Directo» en tableta), baja de línea. */
    .elb-card-head { flex-wrap: wrap; row-gap: .75rem; }
    .elb-card-head .elb-select-wrap { margin-left: auto; max-width: 100%; }
    .elb-card-head .elb-select-box { min-width: 0; }
    .elb-card-head .elb-select { max-width: 100%; }

    /* Championship: logo de cabecera, menú e iconos sociales iban en
       posición absoluta sobre un menú centrado a todo el ancho y se pisaban
       en cuanto había una pestaña más (Inscripción) o un logo. Ahora son
       tres piezas de la misma fila; el menú se centra en el hueco que queda
       y, si no cabe, se desliza. */
    .event-page-style--championship .event-topbar { align-items: stretch; gap: clamp(.75rem, 2vw, 2rem); }
    .event-page-style--championship .championship-header-logo { position: relative; top: auto; bottom: auto; left: auto; flex: 0 0 auto; }
    .event-page-style--championship .event-portal-nav { flex: 1 1 auto; width: auto; }
    .event-page-style--championship .event-topbar-actions { position: static; flex: 0 0 auto; align-self: center; }

    /* En las tres apariencias el menú es una pieza flexible de la cabecera:
       con min-width:auto no encogía nunca y se montaba sobre los iconos
       sociales (simple_clean ~1180px). Encoge, se desliza si hace falta y se
       centra con márgenes automáticos, que a diferencia de
       justify-content:center no cortan la primera pestaña al desbordar. */
    .event-topbar .event-portal-nav { min-width: 0; overflow-x: auto; overflow-y: hidden; }
    @media (min-width: 901px) {
      .event-topbar .event-portal-nav { justify-content: flex-start; }
      .event-topbar .event-portal-nav > .event-portal-nav-item:first-child { margin-left: auto; }
      .event-topbar .event-portal-nav > .event-portal-nav-item:last-child { margin-right: auto; }
    }

    /* Championship: los patrocinadores sangran a todo el ancho también
       cuando el panel está centrado (>1560px); antes medían 100vw sin
       compensar el margen del panel y abrían scroll lateral. */
    .event-page-style--championship #event-panel-general .event-partners-block, .event-page-style--new #event-panel-general .event-partners-block { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
    /* Red de seguridad: las franjas a sangre (100vw) no deben abrir scroll
       lateral por el ancho de la barra de desplazamiento en Windows. Va en
       el body y no en el contenedor: en pantallas anchas el contenedor está
       centrado y las franjas salen de él a propósito. */
    body:has(.event-detail-shell) { overflow-x: clip; }
    /* Los iconos sociales de la cabecera solo caben con el menú entero en
       pantallas anchas; por debajo siguen en «Síguenos» y en el pie. */
    @media (max-width: 1280px) {
      .event-topbar-social { display: none; }
    }

    /* Patrocinadores: ni el logo ni un nombre largo sacan la tarjeta de la
       pantalla. */
    .event-partner { max-width: 100%; min-width: 0; }
    .event-partner img { max-width: 100%; }
    .event-partner-name { max-width: 100%; overflow-wrap: anywhere; text-align: center; }

    /* Old school: «Meteo» y su subtítulo en dos líneas, no pegados. */
    .event-page-style--old_school .old-school-meteo-reading > span:not(.old-school-meteo-reading-icon) { display: grid; gap: .12rem; min-width: 0; }

    /* Resultados: la fila de cabecera (POS, CREW, mangas) no necesita la
       altura de una fila de barco. */
    .pub-clf-header .pub-clf-scrollable { min-height: 0; }

    /* Old school: la franja de meteo tiene cinco columnas con mínimos que
       no caben en tableta; las condiciones se quedan para pantallas anchas. */
    @media (max-width: 1100px) {
      .event-page-style--old_school .old-school-meteo-strip { grid-template-columns: 74px minmax(0, 1fr) minmax(0, 1fr) auto; }
      .event-page-style--old_school .old-school-meteo-conditions { display: none; }
    }

    @media (max-width: 640px) {
      .event-detail-shell { width: 100%; max-width: 100%; overflow: hidden; }
      /* En la portada el contenedor es una columna con align-items:start.
         Sin una anchura explícita, el bloque del título toma su ancho
         intrínseco y se sale por la derecha antes de poder partir línea. */
      .event-hero-copy { align-self: stretch; width: 100%; min-width: 0; max-width: 100%; }
      .event-hero-title { width: 100%; max-width: 100% !important; white-space: normal; overflow-wrap: anywhere; }
      .event-topbar, .event-portal-nav { max-width: 100vw; }
      /* Tarjetas de Inicio (últimos resultados / directo): el selector de
         clase baja a su propia línea en vez de salirse de la tarjeta. */
      .elb-card-head { flex-wrap: wrap; row-gap: .75rem; }
      .elb-card-head .elb-select-wrap { flex: 1 1 100%; min-width: 0; }
      .elb-card-head .elb-select-box { flex: 1; min-width: 0; }
      .elb-card-head .elb-select { width: 100%; min-width: 0; }
      .elb-result-row { gap: .6rem; padding: .75rem; min-height: 0; }
      .elb-result-row .elb-pos { width: 2.1rem; height: 2.1rem; font-size: .95rem; }
      .elb-result-row .elb-crew { gap: .55rem; }
      .elb-result-row .elb-avatar { width: 2.3rem; height: 2.3rem; font-size: .85rem; }
      .elb-result-row .elb-avatar + .elb-avatar { margin-left: -.8rem; }
      .elb-result-row .elb-crew-name { font-size: .92rem; white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }

      /* Resultados: la columna fija (posición + tripulación) no puede ser
         más ancha que el móvil, o las mangas nunca llegan a verse. */
      .pub-toolbar { gap: .85rem; padding-left: 0; padding-right: 0; }
      .pub-toolbar .pub-tool { flex: 1 1 100%; min-width: 0; }
      .pub-toolbar .pub-tool-label { flex: 0 0 4.4rem; font-size: .92rem; }
      .pub-tool-search { min-width: 0; }
      .sc-entry-toolbar .pub-tool-search { flex: 1 1 100%; max-width: none; }
      .pub-class-icons { min-width: 0; }
      .pub-clf-sticky { min-width: 0; width: min(15.5rem, 66vw); gap: 8px; padding: 10px 10px 10px 8px; }
      .pub-clf-row:not(.pub-clf-header), .pub-clf-scrollable { min-height: 78px; }
      .pub-cls-pos { width: 30px; }
      .pub-cls-avatar { width: 40px; margin-left: 0; }
      .pub-cls-avatar > div { margin-left: 0 !important; }
      .pub-cls-avatar > div > :not(:first-child) { display: none !important; }
      .pub-cls-avatar img, .pub-cls-avatar > div > div { width: 40px !important; height: 40px !important; flex-basis: 40px !important; font-size: 14px !important; }
      .pub-cls-crew { min-width: 0; max-width: none; }
      .pub-cls-sticky-net { width: 44px; flex-basis: 44px; }
      .pub-race-dot { width: 36px; height: 36px; font-size: 12px; }
      .pub-cls-dot { width: 40px; }

      /* Tablón oficial: icono pequeño a la izquierda, título a todo el ancho
         y la descarga debajo, en vez de tres columnas aplastadas. */
      .toa-doc-card { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: .35rem .95rem; padding: 1rem; }
      .toa-doc-filetile { width: 2.9rem; height: 3.6rem; padding-bottom: .45rem; font-size: .66rem; border-radius: .6rem; }
      .toa-doc-filetile-fold { width: .9rem; height: .9rem; border-radius: 0 .6rem 0 .5rem; }
      .toa-doc-filetile.is-route svg { width: 1.5rem; height: 1.5rem; }
      .toa-doc-title { font-size: 1.02rem; }
      .toa-doc-sub { font-size: .84rem; }
      .toa-doc-badges { margin-top: .55rem; }
      .toa-doc-download { grid-column: 2; align-self: start; justify-self: start; margin-top: .35rem; font-size: .74rem; }
      .toa-doc-download-icon { width: 1.9rem; height: 1.9rem; }

      /* Directo › tracking: cada manga en una tarjeta (fecha, flota y manga
         a la izquierda, botón a la derecha) en lugar de cuatro columnas. */
      .sc-track-head { flex-wrap: wrap; gap: .5rem 1rem; }
      .sc-track-row.sc-track-header { display: none; }
      .sc-track-row { grid-template-columns: minmax(0, 1fr) auto; gap: .15rem .8rem; padding: .8rem .9rem; }
      .sc-track-row > .sc-track-date { grid-column: 1; grid-row: 1; font-size: .8rem; }
      .sc-track-row > .sc-track-race { grid-column: 1; grid-row: 2; }
      .sc-track-row > .sc-track-fleet { grid-column: 1; grid-row: 3; font-size: .82rem; }
      .sc-track-row > .sc-track-cell { grid-column: 2; grid-row: 1 / span 3; align-self: center; }

      /* Meteo: las pestañas de la gráfica bajan de línea antes que empujar
         la tarjeta fuera de la pantalla. */
      .mx-tabs { flex-wrap: wrap; max-width: 100%; }
      .mx-chart-head > * { min-width: 0; max-width: 100%; }

      /* Championship: las tres tarjetas de acceso apiladas eran de 4:5 y
         ocupaban tres pantallas; en móvil, apaisadas. */
      .event-page-style--championship .championship-quick-links, .event-page-style--new .championship-quick-links { padding: 2rem 0 2.5rem; }
      .event-page-style--championship .championship-quick-link, .event-page-style--new .championship-quick-link { aspect-ratio: 16 / 9; }
      .event-page-style--championship .championship-quick-link-label, .event-page-style--new .championship-quick-link-label { min-width: min(70%, 15rem); min-height: 3rem; font-size: 1rem; }
      .event-page-style--championship .event-hero, .event-page-style--championship .event-hero-inner { min-height: min(34rem, 82svh); }
    }

    @media (max-width: 1100px) {
      .event-topbar-actions:has(.event-topbar-social:only-child){display:none}
    }
    @media (max-width: 420px) {
      /* Los seis iconos de redes caben en una sola fila. */
      .event-social-icons { gap: .55rem; }
      .event-social-icons a { width: 2.75rem; height: 2.75rem; }
    }

    /* ──────────────────────────────────────────────────────────────────
       NEW
       Portada a sangre al estilo de los grandes eventos: la foto se funde
       abajo con el color de acento del evento (no con negro), logo y título
       a la izquierda, tarjeta de cuenta atrás a la derecha y el menú de
       secciones como una píldora flotante con subrayado. Debajo, el Inicio
       de siempre sobre ese mismo color; el resto de secciones no cambia.
       ────────────────────────────────────────────────────────────────── */
    .event-page-style--new {
      --nw-base: color-mix(in srgb, var(--event-accent) 86%, #04070d);
      --nw-line: rgba(255, 255, 255, .16);
      --nw-glass: rgba(255, 255, 255, .07);
      --nw-muted: rgba(255, 255, 255, .68);
      --nw-indicator: color-mix(in srgb, var(--event-accent) 40%, #ffffff);
      display: flex; flex-direction: column;
      width: 100%; max-width: none; padding: 0;
      background: var(--nw-base); color: #fff;
    }
    .event-page-style--new .event-showcase,
    .event-page-style--new .old-school-meteo-strip { display: none !important; }

    /* Portada: pantalla completa, esquinas de arriba redondeadas sobre una
       tira del color del evento, y la foto que se funde abajo en ese color. */
    .event-page-style--new { padding-top: .6rem; }
    .nw-hero {
      order: 2; position: relative; isolation: isolate; overflow: hidden;
      display: flex; width: 100vw; min-height: max(calc(100svh - 4.5rem), 640px); margin: 0 calc(50% - 50vw);
      border-radius: 1.4rem 1.4rem 0 0; background: var(--nw-base);
    }
    .nw-hero-media {
      position: absolute; inset: 0; z-index: -2;
      background: linear-gradient(135deg, var(--event-accent-dark), var(--event-accent));
    }
    .nw-hero.has-banner .nw-hero-media { background: var(--nw-banner) center 35% / cover no-repeat; }
    .nw-hero::after {
      content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
      background:
        linear-gradient(180deg,
          color-mix(in srgb, var(--nw-base) 30%, transparent) 0%,
          transparent 16%,
          transparent 44%,
          color-mix(in srgb, var(--nw-base) 55%, transparent) 60%,
          color-mix(in srgb, var(--nw-base) 88%, transparent) 76%,
          var(--nw-base) 90%);
    }
    .nw-hero-inner {
      display: flex; width: 100%; max-width: 1760px; margin: 0 auto;
      align-items: flex-end; justify-content: space-between; gap: 2.5rem;
      padding: 7rem clamp(1.25rem, 4.5vw, 5.5rem) clamp(4rem, 9vh, 6.5rem);
    }
    .nw-hero-main { display: grid; justify-items: start; min-width: 0; max-width: 60rem; }
    .nw-hero-logo {
      width: auto; max-width: clamp(8rem, 13vw, 13rem); max-height: clamp(3.5rem, 9vh, 6rem);
      margin-bottom: clamp(1.75rem, 4.5vh, 2.75rem); object-fit: contain; object-position: left center;
      filter: drop-shadow(0 6px 22px rgba(0, 0, 0, .3));
    }
    .nw-hero-title {
      margin: 0; color: #fff; font-size: clamp(2.1rem, 3.3vw, 3.4rem); font-weight: 700;
      letter-spacing: -.01em; line-height: 1.1; text-wrap: balance;
    }
    .nw-hero-title.is-visually-hidden {
      position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
    }
    .nw-hero-place { margin: .9rem 0 0; color: rgba(255, 255, 255, .62); font-size: clamp(1.05rem, 1.35vw, 1.35rem); font-weight: 400; }
    .nw-hero-facts {
      display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem clamp(2.5rem, 6vw, 6.5rem);
      margin-top: clamp(2rem, 5.5vh, 3.75rem);
    }
    .nw-fact {
      display: inline-flex; align-items: center; gap: .9rem; padding: 0; border: 0;
      background: none; color: #fff; font: inherit; text-align: left;
    }
    button.nw-fact { cursor: pointer; }
    .nw-fact-copy { display: grid; gap: .2rem; line-height: 1.25; }
    .nw-fact-copy strong { font-size: clamp(1rem, 1.2vw, 1.18rem); font-weight: 500; }
    .nw-fact-copy small { color: rgba(255, 255, 255, .62); font-size: clamp(.98rem, 1.15vw, 1.12rem); }
    .nw-fact-chevron { width: 1.05rem; height: 1.05rem; margin-left: .35rem; color: rgba(255, 255, 255, .8); transition: transform .16s ease; }
    button.nw-fact:hover .nw-fact-chevron { transform: translateX(3px); color: #fff; }
    button.nw-fact:focus-visible { outline: 2px solid var(--nw-indicator); outline-offset: 6px; border-radius: .5rem; }
    /* Calendario: hoja blanca con la franja del mes en rojo. */
    .nw-cal {
      display: grid; width: 3.05rem; overflow: hidden; border-radius: .35rem;
      background: #fff; color: #0b1220; text-align: center; box-shadow: 0 6px 18px -8px rgba(0, 0, 0, .55);
    }
    .nw-cal-month {
      padding: .14rem 0 .1rem; background: #e11d48; color: #fff;
      font-size: .58rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    }
    .nw-cal-day { padding: .18rem 0 .3rem; font-size: 1.1rem; font-weight: 700; line-height: 1.2; }
    /* Sede: tesela gris con la bandera pequeña dentro. */
    .nw-flag {
      display: grid; width: 3.05rem; height: 3.05rem; place-items: center; border-radius: .35rem;
      background: rgba(255, 255, 255, .16); font-size: 1.55rem; line-height: 1;
    }
    .nw-flag svg { width: 1.3rem; height: 1.3rem; color: #fff; }

    /* Barra superior: logo grande del organizador a la izquierda, secciones
       en una píldora de cristal centrada y una X a la derecha para salir del
       evento. Flota sobre la foto; al bajar se vuelve sólida en el color del
       evento, el logo se va y la cabecera de SailIQ deja de quedarse fija. */
    body:has(.event-page-style--new) header.sticky { position: relative; }
    .event-page-style--new .event-topbar {
      order: 1; position: sticky; top: 0; z-index: 40;
      display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 1.25rem;
      width: 100vw; min-height: 0; height: 4.75rem; margin: 0 calc(50% - 50vw) -4.75rem;
      padding: 0 clamp(1rem, 2.2vw, 2rem); background: transparent; border: 0; box-shadow: none;
      transition: background .2s ease, box-shadow .2s ease;
    }
    .event-page-style--new .event-topbar.is-solid,
    .event-page-style--new.event-portal-section-open .event-topbar {
      background: var(--nw-base); box-shadow: 0 1px 0 rgba(255, 255, 255, .06);
    }
    .event-page-style--new .event-topbar-actions,
    .event-page-style--new .championship-header-logo { display: none; }
    .nw-brand {
      position: absolute; top: .9rem; left: clamp(1rem, 2.2vw, 2rem); z-index: 1;
      padding: 0; border: 0; background: none; cursor: pointer;
      transition: opacity .2s ease, transform .2s ease, visibility .2s;
    }
    .nw-brand-logo {
      display: grid; width: 5.5rem; height: 5.5rem; place-items: center; overflow: hidden; border-radius: 50%;
      background: var(--nw-base); border: 2px solid rgba(255, 255, 255, .55); color: #fff; font-size: 2rem; font-weight: 800;
      box-shadow: 0 10px 30px -12px rgba(0, 0, 0, .6);
    }
    .nw-brand-logo img { width: 100%; height: 100%; object-fit: cover; background: #fff; }
    .event-page-style--new .event-topbar.is-solid .nw-brand,
    .event-page-style--new.event-portal-section-open .nw-brand { opacity: 0; visibility: hidden; transform: translateY(-.5rem) scale(.9); }
    .nw-exit {
      grid-column: 3; grid-row: 1; justify-self: end; display: grid; width: 2.75rem; height: 2.75rem; place-items: center;
      border: 1px solid rgba(255, 255, 255, .28); border-radius: 50%; background: rgba(64, 74, 92, .45); color: #fff;
      -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); transition: background .15s ease;
    }
    .nw-exit svg { width: 1.15rem; height: 1.15rem; }
    .nw-exit:hover { background: rgba(255, 255, 255, .2); color: #fff; }
    .nw-exit:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
    .event-page-style--new .event-topbar .event-portal-nav {
      grid-column: 2; grid-row: 1; flex: none; order: 0; justify-content: center; max-width: min(100%, 60rem); gap: .1rem;
      padding: .2rem .45rem; overflow-x: auto; scrollbar-width: none;
      border: 1px solid rgba(255, 255, 255, .2); border-radius: 999px;
      background: rgba(64, 74, 92, .5);
      -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%);
    }
    .event-page-style--new .event-topbar.is-solid .event-portal-nav,
    .event-page-style--new.event-portal-section-open .event-topbar .event-portal-nav { background: rgba(255, 255, 255, .06); }
    .event-page-style--new .event-topbar .event-portal-nav::-webkit-scrollbar { display: none; }
    .event-page-style--new .event-topbar .event-portal-nav-item {
      position: relative; flex: 0 0 auto; padding: .82rem clamp(.8rem, 1.3vw, 1.3rem);
      border: 0; border-radius: 999px; background: transparent;
      color: #fff; font-size: clamp(.95rem, 1.05vw, 1.08rem); font-weight: 500;
      letter-spacing: 0; text-transform: none; white-space: nowrap;
    }
    .event-page-style--new .event-topbar .event-portal-nav-item::after {
      content: ""; position: absolute; right: clamp(.8rem, 1.3vw, 1.3rem); bottom: .18rem; left: clamp(.8rem, 1.3vw, 1.3rem);
      height: 2px; border-radius: 2px; background: #e11d48;
      transform: scaleX(0); transition: transform .2s ease;
    }
    .event-page-style--new .event-topbar .event-portal-nav-item:hover,
    .event-page-style--new .event-topbar .event-portal-nav-item:focus-visible { background: rgba(255, 255, 255, .08); color: #fff; }
    .event-page-style--new .event-topbar .event-portal-nav-item.is-primary,
    .event-page-style--new .event-topbar .event-portal-nav-item.is-primary:hover,
    .event-page-style--new .event-topbar .event-portal-nav-item.is-primary:focus-visible { background: transparent; color: #fff; }
    .event-page-style--new .event-topbar .event-portal-nav-item.is-primary::after { transform: scaleX(1); }
    .event-page-style--new .event-portal-nav-icon,
    .event-page-style--new .event-portal-live-dot { display: none; }
    .event-page-style--new.event-portal-section-open .nw-hero { display: none; }
    .event-page-style--new.event-portal-section-open .event-topbar { margin-bottom: 0; }

    /* Debajo de la portada, el Inicio de Championship (las reglas compartidas
       están en el bloque CHAMPIONSHIP); aquí solo lo propio de «New». */
    .event-detail-shell.event-page-style--new .event-portal-panels { order: 3; width: 100%; padding: 0; background: #fff; color: #102e4a; }
    .event-page-style--new .event-portal-panel:not(#event-panel-general) { max-width: 1500px; margin: 0 auto; padding: clamp(2rem, 5vw, 5rem) clamp(1rem, 5vw, 4rem); }
    .event-page-style--new #event-panel-general { display: flex; flex-direction: column; }
    .event-page-style--new .championship-quick-link-label { background: var(--nw-base); }
    .event-page-style--new .event-partners-title,
    .event-page-style--new .event-sponsor-group-title { color: var(--nw-base); }
    .event-page-style--new .event-standard-footer { order: 5; width: 100vw; margin: 0 calc(50% - 50vw); background: #fff; }
    .event-page-style--new .event-standard-footer .championship-event-footer-main { background: var(--nw-base); }
    .event-page-style--new .event-standard-footer .championship-event-footer-legal { color: #25425d; }
    .event-page-style--new .event-standard-footer .championship-event-footer-social a { background: rgba(255, 255, 255, .12); color: #fff; }
    .event-page-style--new .event-standard-footer .championship-event-footer-social a:hover { background: #fff; color: var(--nw-base); }

    @media (max-width: 900px) {
      .nw-hero { min-height: 0; border-radius: 1rem 1rem 0 0; }
      .nw-hero-inner { flex-direction: column; align-items: stretch; gap: 2rem; padding: 13rem 1.25rem 3.5rem; }
      .nw-hero-logo { max-width: 7rem; max-height: 4rem; margin-bottom: 1.25rem; }
      .nw-hero-facts { flex-direction: column; align-items: flex-start; gap: 1.1rem; margin-top: 1.75rem; }
      /* En móvil: logo y X arriba, la píldora debajo, deslizable. */
      .event-page-style--new .event-topbar { grid-template-columns: minmax(0, 1fr) auto; height: auto; gap: .6rem; margin-bottom: -8rem; padding: .8rem .75rem .7rem; }
      .event-page-style--new.event-portal-section-open .event-topbar { margin-bottom: 0; }
      .event-page-style--new .event-topbar .event-portal-nav { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; max-width: 100%; }
      .event-page-style--new .event-topbar .event-portal-nav-item { padding: .72rem .9rem; font-size: .95rem; }
      .nw-exit { grid-column: 2; grid-row: 1; }
      .nw-brand { position: static; grid-column: 1; grid-row: 1; justify-self: start; }
      .nw-brand-logo { width: 3.6rem; height: 3.6rem; }
      /* Sólida: sin logo, las secciones y la X comparten una sola fila. */
      .event-page-style--new .event-topbar.is-solid .nw-brand,
      .event-page-style--new.event-portal-section-open .nw-brand { display: none; }
      .event-page-style--new .event-topbar.is-solid .event-portal-nav,
      .event-page-style--new.event-portal-section-open .event-topbar .event-portal-nav { grid-column: 1; grid-row: 1; }
    }

    /* Móvil: la portada apaisada se recortaba por el centro. Si el organizador
       subió la portada de carrusel (4:5, pensada en vertical), se usa esa y la
       portada toma su proporción para que se vea entera. Sin ella, la de siempre.
       Old school queda fuera: es una franja baja donde la 4:5 se recortaría más. */
    @media (max-width: 900px) {
      .event-detail-shell:not(.event-page-style--old_school) .event-hero.has-mobile-cover {
        background-image: var(--event-hero-mobile) !important;
        background-position: center top;
        background-size: cover;
        background-repeat: no-repeat;
      }
      .event-detail-shell:not(.event-page-style--old_school) .event-hero.has-mobile-cover,
      .event-detail-shell:not(.event-page-style--old_school) .event-hero.has-mobile-cover .event-hero-inner {
        min-height: 125vw;
      }
      .nw-hero.has-mobile-cover .nw-hero-media { background: var(--nw-banner-mobile) center top / cover no-repeat; }
      .nw-hero.has-mobile-cover { min-height: 125vw; }
      .nw-hero.has-mobile-cover .nw-hero-inner { justify-content: flex-end; }
    }

    /* Resultados en móvil, como en iOS: solo se quedan quietos el puesto y la
       vela; la tripulación, los puntos y las mangas se deslizan por debajo.
       Antes la columna fija (puesto + caras + nombres) se comía dos tercios
       de la pantalla y de las mangas se veía una y media.
       Los dos bloques de la fila se disuelven (display: contents) para poder
       reordenar las celdas sin tocar el HTML del escritorio. */
    @media (max-width: 640px) {
      .pub-toolbar { gap: .6rem; margin-bottom: .75rem; padding-bottom: .85rem; }
      .pub-toolbar .pub-tool-label { display: none; }
      .pub-toolbar .pub-tool-classes { order: -1; }
      .pub-toolbar .pub-class-icons { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding: 2px 2px 4px; }
      .pub-toolbar .pub-class-icons::-webkit-scrollbar { display: none; }
      .pub-toolbar .pub-class-icon { flex: 0 0 auto; }
      .pub-toolbar .pub-tool-search { flex: 1 1 0; min-width: 0; }
      .pub-toolbar .pub-tool-search-wrap, .pub-toolbar .pub-tool-search-input { min-width: 0; width: 100%; }
      .pub-toolbar .pub-tool:has(.pub-view-toggle) { flex: 0 0 auto; }

      .pub-clf-head { padding-bottom: .5rem; }
      .pub-clf-wrapper { margin-top: .4rem; }
      .event-portal-panel .sc-results-panel[data-sc-results-panel="results"] .pub-clf-wrapper { margin-right: 0; }
      .pub-clf-table { gap: 0; }

      .pub-clf-row,
      .pub-clf-row:not(.pub-clf-header) {
        --pub-row-bg: #fff;
        min-height: 64px; border: 0; border-radius: 0; box-shadow: none;
        border-bottom: 1px solid #eef1f5; background: var(--pub-row-bg);
      }
      .pub-clf-row[data-pub-row]:nth-child(odd) { --pub-row-bg: #f7f8fa; }
      .pub-clf-row:hover:not(.pub-clf-header) { transform: none; box-shadow: none; }
      .pub-clf-header { min-height: 0; border-bottom-color: #e5e9f0; }
      .pub-clf-sticky, .pub-clf-scrollable { display: contents; }
      .pub-clf-sticky::after { content: none; }

      .pub-clf-row > * > * { flex: 0 0 auto; }
      .pub-cls-pos {
        order: 1; position: sticky; left: 0; z-index: 3; width: 34px;
        align-self: stretch; display: flex; align-items: center; justify-content: center;
        padding-left: 3px; background: var(--pub-row-bg);
      }
      .pub-cls-sail {
        order: 2; position: sticky; left: 34px; z-index: 3; width: 60px;
        align-self: stretch; display: flex; align-items: center; justify-content: center;
        text-align: center; background: var(--pub-row-bg);
      }
      .pub-cls-sail > span { font-size: 11px !important; font-weight: 800 !important; color: #0f172a !important; white-space: nowrap; }
      .pub-cls-sail::after {
        content: ''; position: absolute; top: 0; bottom: 0; right: -6px; width: 6px;
        background: linear-gradient(to right, rgba(15,23,42,.10), transparent); pointer-events: none;
      }
      .pub-cls-avatar { order: 3; width: 40px; margin-left: 10px; }
      .pub-cls-crew { order: 4; width: 140px; max-width: none; min-width: 0; padding: 8px 6px 8px 10px; }
      .pub-cls-crew > div:last-child { margin-bottom: 0 !important; }
      .pub-clf-scrollable > .pub-cls-pts:nth-of-type(2) { order: 5; }
      .pub-clf-scrollable > .pub-cls-pts:nth-of-type(3) { order: 6; }
      .pub-cls-pts { order: 5; width: 44px; }
      .pub-cls-dot { order: 7; width: 40px; }
      .pub-cls-sticky-net,
      .pub-clf-table.is-net-sticky .pub-cls-sticky-net { display: none; }
      .pub-pos-circle { width: 28px; height: 28px; font-size: 13px; }
      .pub-race-dot { width: 34px; height: 34px; font-size: 12px; }
      .pub-race-dot.is-discard, .pub-race-dot.penalty { font-size: 9px; }

      /* Cabecera: «CREW» arranca donde la cara, como en la app. */
      .pub-clf-header > * > * { font-size: 10px; color: #64748b; padding-top: 6px; padding-bottom: 6px; }
      .pub-clf-header .pub-cls-avatar { display: none; }
      .pub-clf-header .pub-cls-crew { width: 190px; padding-left: 10px; }
    }
