/* ==========================================================================
   En vivo y próximos (red/en-vivo.html y red/evento.html)
   Prefijo .rv-  ·  Usa los tokens de rdn.css; no redefine nada de red.css.
   ========================================================================== */
.rv-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3) var(--sp-4); margin-bottom: var(--sp-6); }
.rv-zone { font-size: var(--fs-sm); color: var(--fg-mute); max-width: 62ch; }
.rv-sec { margin-top: var(--sp-8); }
.rv-sec__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-3); flex-wrap: wrap; padding-bottom: var(--sp-2); border-bottom: var(--line-2); margin-bottom: var(--sp-5); }
.rv-sec__head h2 { font-size: var(--fs-xl); }
.rv-sec__n { font-size: var(--fs-sm); color: var(--fg-mute); font-weight: 600; }
.rv-quiet { color: var(--fg-mute); font-size: var(--fs-sm); padding: var(--sp-3) 0; }

/* Lista y tarjeta */
.rv-list { display: grid; gap: var(--sp-5); grid-template-columns: minmax(0, 1fr); list-style: none; margin: 0; padding: 0; }
@media (min-width: 900px) { .rv-list--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rv-card { display: grid; gap: var(--sp-3); align-content: start; min-width: 0; padding: var(--sp-5); background: var(--paper); border: var(--line-2); }
.rv-card--live { border-color: var(--red); background: var(--red-tint); }
.rv-card--off { background: var(--paper-2); border-style: dashed; }
.rv-card__top { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-3); }
.rv-card__title { font-size: var(--fs-lg); line-height: 1.15; overflow-wrap: anywhere; }
.rv-card__title a { text-decoration: none; }
.rv-card__title a:hover { text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 3px; text-underline-offset: 3px; }
.rv-when { font-weight: 700; font-size: var(--fs-base); }
.rv-when small { display: block; font-weight: 500; font-size: var(--fs-sm); color: var(--fg-mute); }
.rv-count { font-size: var(--fs-sm); font-weight: 600; color: var(--red-deep); }
.rv-desc { color: var(--fg-2); overflow-wrap: anywhere; white-space: pre-line; max-width: 62ch; }
.rv-card .rv-desc { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.rv-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-4); font-size: var(--fs-sm); color: var(--fg-2); }
.rv-meta > * { display: inline-flex; align-items: center; gap: var(--sp-2); min-width: 0; }
.rv-org { display: inline-flex; align-items: center; gap: var(--sp-2); text-decoration: none; font-weight: 600; }
.rv-org:hover { text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.rv-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-3); margin-top: var(--sp-1); }
.rv-actions .btn { min-height: 44px; }
.rv-ext { display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px 2px; font-family: var(--font-head); font-weight: 700; font-size: var(--fs-xs); letter-spacing: 0.1em; text-transform: uppercase; color: var(--yellow-ink); background: var(--yellow-soft); border: 1px solid var(--yellow-ink); }
.rv-note { font-size: var(--fs-sm); color: var(--fg-2); background: var(--yellow-soft); border: 1px solid var(--yellow-ink); padding: var(--sp-2) var(--sp-3); max-width: 62ch; }
.rv-linkbtn { background: none; border: 0; padding: 0 var(--sp-1); min-height: 44px; cursor: pointer; font: inherit; font-weight: 600; font-size: var(--fs-sm); color: var(--ink); text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.rv-linkbtn:hover { color: var(--red-deep); }
.rv-linkbtn.is-danger { color: var(--red-deep); }
.rv-cancelled { font-size: var(--fs-sm); font-weight: 600; color: var(--red-deep); }

/* Insignia EN VIVO */
.rv-live { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px 2px; background: var(--red); color: #fff; border: 1px solid var(--red); font-family: var(--font-head); font-weight: 800; font-size: var(--fs-xs); letter-spacing: 0.14em; text-transform: uppercase; }
.rv-live::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: rv-pulse 1.6s ease-in-out infinite; }
@keyframes rv-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.25; } }
@media (prefers-reduced-motion: reduce) { .rv-live::before { animation: none; } }

/* Formulario y panel de gestión */
.rv-panel { padding: var(--sp-5); background: var(--paper-2); border: var(--line-2); display: grid; gap: var(--sp-4); }
.rv-panel h2 { font-size: var(--fs-xl); }
.rv-panel p { max-width: 62ch; color: var(--fg-2); }
.rv-form { display: grid; gap: var(--sp-4); grid-template-columns: minmax(0, 1fr); }
.rv-form[hidden] { display: none; }
.rv-form .field--wide { grid-column: 1 / -1; }
@media (min-width: 720px) { .rv-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rv-form .textarea { min-height: 110px; }
.rv-count-out { font-size: var(--fs-sm); color: var(--fg-mute); }
.rv-count-out.is-over { color: var(--err); font-weight: 600; }
.rv-zonetag { font-size: var(--fs-sm); color: var(--fg-mute); }

/* Mis eventos */
.rv-tabs { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-bottom: var(--sp-4); }
.rv-mine__group + .rv-mine__group { margin-top: var(--sp-6); }
.rv-mine__group h3 { font-size: var(--fs-lg); margin-bottom: var(--sp-3); }

/* Detalle */
.rv-detail { display: grid; gap: var(--sp-6); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 960px) { .rv-detail { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); align-items: start; } }
.rv-detail > * { min-width: 0; }
.rv-detail h1 { font-size: var(--fs-xl); overflow-wrap: anywhere; }
.rv-detail .h2 { font-size: var(--fs-lg); }
#rv-d-head > * + * { margin-top: var(--sp-2); }
#rv-d-head h1 { margin-top: var(--sp-3); }
.rv-player { position: relative; width: 100%; aspect-ratio: 16 / 9; background: var(--ink); border: var(--line-2); }
.rv-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.rv-side { display: grid; gap: var(--sp-4); padding: var(--sp-5); border: var(--line-2); background: var(--paper-2); align-content: start; }
.rv-side .rv-actions { flex-direction: column; align-items: stretch; }
.rv-dl { display: grid; gap: var(--sp-3); }
.rv-dl dt { font-family: var(--font-head); font-weight: 700; font-size: var(--fs-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg-mute); }
.rv-dl dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.rv-back { display: inline-block; margin-bottom: var(--sp-4); }

/* Ventanas de gestión (cancelar, terminar, grabación) */
.rv-dlg { display: grid; gap: var(--sp-4); }
.rv-dlg__err { color: var(--err); font-weight: 600; font-size: var(--fs-sm); }
.rv-dlg__err[hidden] { display: none; }
#rv-d-body > * + * { margin-top: var(--sp-4); }
