/* ==========================================================================
   Vistas de contenido (listados, fichas, calendarios) — hover homogéneo
   Misma regla que el editor (jr-edit.css):
   - Tarjetas de contenido (evento, partida, master, comunidad): se despegan
     2 px, sombra mínima y borde índigo.
   - Contenedores (paneles, secciones de una ficha): solo oscurecen el borde.
   ========================================================================== */

/* Tarjetas: una sola dinámica para todas */
.jr-card-partida,
.jr-master-card-h,
.jr-comunidad-card,
.jr-card-mini,
.jr-ver-tarjeta {
    transition:
        transform 0.2s,
        box-shadow 0.2s,
        border-color 0.15s;
}
.jr-card-partida:hover,
.jr-master-card-h:hover,
.jr-comunidad-card:hover,
.jr-card-mini:hover,
.jr-ver-tarjeta:hover {
    transform: translateY(-2px);
    box-shadow: 0 2px 6px rgb(0 0 0 / 0.08);
    border-color: var(--jr-p-300);
}

/* Contenedores: .jr-card es la caja genérica del sitio; solo marca el borde */
.jr-card:not(.jr-card-mini) {
    transition: border-color 0.15s;
}
.jr-card:not(.jr-card-mini):hover {
    border-color: color-mix(in srgb, var(--jr-s-300) 90%, #000);
    box-shadow: none;
    transform: none;
}
.jr-card:not(.jr-card-mini):has(:is(.jr-card-partida, .jr-master-card-h, .jr-comunidad-card, .jr-ver-tarjeta, .jr-card-mini):hover) {
    border-color: var(--jr-s-200);
}
/* ...salvo que la caja sea en sí una tarjeta de contenido */
.jr-card.jr-ver-tarjeta {
    transition:
        transform 0.2s,
        box-shadow 0.2s,
        border-color 0.15s;
}
.jr-card.jr-ver-tarjeta:hover {
    transform: translateY(-2px);
    box-shadow: 0 2px 6px rgb(0 0 0 / 0.08);
    border-color: var(--jr-p-300);
}

/* Contenedores: solo el borde */
.jr-ver-panel {
    background: #fff;
    border: 1px solid var(--jr-s-200);
    border-radius: var(--jr-r-lg);
    transition: border-color 0.15s;
}
.jr-ver-panel:hover {
    border-color: color-mix(in srgb, var(--jr-s-300) 90%, #000);
}
.jr-ver-panel:has(:is(.jr-card-partida, .jr-master-card-h, .jr-comunidad-card, .jr-ver-tarjeta, .jr-card-mini):hover) {
    border-color: var(--jr-s-200);
}

@media (prefers-reduced-motion: reduce) {
    .jr-card.jr-ver-tarjeta:hover,
    .jr-card-partida:hover,
    .jr-master-card-h:hover,
    .jr-comunidad-card:hover,
    .jr-card-mini:hover,
    .jr-ver-tarjeta:hover {
        transform: none;
    }
}

/* --- Tarjeta de comunidad --- */
.jr-com-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    position: relative;
}
.jr-com-card-banner {
    height: 110px;
    overflow: hidden;
    flex-shrink: 0;
    background: var(--jr-com-fondo);
}
.jr-com-card-banner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.85;
}
.jr-com-card-avatar {
    position: absolute;
    top: calc(110px - 1.25rem);
    left: 1rem;
    z-index: 1;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--jr-r);
    background: #fff;
    border: 2px solid var(--jr-s-100);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--jr-font-head);
    font-weight: 800;
    font-size: 1.125rem;
    color: var(--jr-p-600);
    overflow: hidden;
    flex-shrink: 0;
}
.jr-com-card-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
}
.jr-com-card-cuerpo {
    padding: 1.75rem 1rem 1rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.jr-com-card-desc {
    font-size: 0.8125rem;
    color: var(--jr-s-600);
    line-height: 1.5;
}
.jr-com-card-pie {
    margin-top: auto;
    padding-top: 0.75rem;
}
.jr-com-card-stats {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
    font-size: 0.8125rem;
    color: var(--jr-s-600);
}
.jr-com-card-verif {
    color: var(--jr-p-600);
    margin-left: 0.25rem;
}

/* --- Tarjeta de partida / evento: restos de estilos en línea --- */
.jr-card-datetime-sec {
    margin-top: 0.25rem;
    color: var(--jr-s-600);
}
.jr-card-gema {
    color: var(--jr-a-600);
    margin-left: 0.25rem;
}
.jr-avatar.jr-avatar-foto {
    padding: 0;
    overflow: hidden;
}
.jr-avatar.jr-avatar-foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.jr-card-master-info {
    flex: 1;
    min-width: 0;
}
.jr-card-link-sec {
    text-align: right;
    margin-top: 0.25rem;
}
.jr-card-link-sec-a {
    font-size: 0.75rem;
    color: var(--jr-s-600);
    text-decoration: underline;
}

/* --- Estructura común de los listados (buscar / directorio / índice) --- */
.jr-ver-cabecera {
    padding-top: 1.5rem;
    padding-bottom: 1rem;
}
.jr-ver-cabecera-fila {
    flex-wrap: wrap;
    gap: 1rem;
}
.jr-ver-filtros {
    margin-bottom: 1.5rem;
}
.jr-ver-filtros-cuerpo {
    padding: 1.25rem 1.5rem;
}
.jr-ver-filtros-fila {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: flex-end;
}
.jr-ver-filtro {
    flex: 1;
    min-width: 220px;
}
.jr-ver-filtro-chico {
    min-width: 180px;
}
.jr-ver-filtro .jr-select,
.jr-ver-filtro-chico .jr-select {
    width: 100%;
}
.jr-ver-filtros-acciones {
    display: flex;
    gap: 0.5rem;
    align-items: flex-end;
}
.jr-ver-filtros .jr-label {
    margin-bottom: 0.25rem;
    display: block;
}
.jr-ver-resultados {
    padding-top: 1.5rem;
    padding-bottom: 2rem;
}
.jr-ver-resultados-fila {
    margin-bottom: 1rem;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.jr-ver-conteo {
    font-size: 0.8125rem;
    color: var(--jr-s-600);
    margin-bottom: 1rem;
}
.jr-ver-grilla {
    margin-bottom: 1.5rem;
}
.jr-ver-paginador {
    display: flex;
    justify-content: center;
    margin-top: 1rem;
}
.jr-ver-paginador .jr-paginator {
    display: flex;
    gap: 0.25rem;
    list-style: none;
    padding: 0;
    margin: 0;
    flex-wrap: wrap;
    align-items: center;
}
.jr-ver-vacio {
    border: 1px solid var(--jr-s-200);
    border-radius: var(--jr-r-lg);
    background: #fff;
    text-align: center;
    padding: 3rem 1rem;
    color: var(--jr-s-600);
}
.jr-ver-vacio > .bi {
    display: block;
    font-size: 2.5rem;
    color: var(--jr-s-400);
    margin-bottom: 1rem;
}
.jr-ver-vacio p {
    margin: 0 0 1rem;
}
@media (max-width: 640px) {
    .jr-ver-filtros-acciones .jr-btn,
    .jr-ver-filtros .jr-input,
    .jr-ver-filtros .jr-select {
        min-height: 44px;
    }
}

.jr-ver-vacio-caja {
    border: 1px solid var(--jr-s-200);
    border-radius: var(--jr-r-lg);
    background: #fff;
}

/* --- Tarjetas enlace de directorio (espacios, emprendimientos) --- */
.jr-ver-tarjeta-link {
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
}
.jr-ver-card-cuerpo {
    padding: 1rem 1.25rem 1.25rem;
}
.jr-ver-card-tipos {
    margin-bottom: 0.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}
.jr-ver-badge-chico {
    font-size: 0.75rem;
}
.jr-ver-card-desc {
    color: var(--jr-s-600);
    font-size: 0.875rem;
    margin: 0 0 0.75rem;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.jr-ver-card-dato {
    font-size: 0.8125rem;
    color: var(--jr-s-600);
}
.jr-ver-card-dato + .jr-ver-card-dato {
    margin-top: 0.25rem;
}


/* --- Tarjeta de emprendimiento --- */
.jr-emp-card-banner {
    height: 100px;
    background: var(--jr-s-100);
    position: relative;
    border-radius: var(--jr-r-lg) var(--jr-r-lg) 0 0;
}
.jr-emp-card-banner > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
}
.jr-emp-card-logo {
    position: absolute;
    bottom: -24px;
    left: 16px;
}
.jr-emp-card-logo img,
.jr-emp-card-inicial {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 2px solid #fff;
    object-fit: cover;
}
.jr-emp-card-inicial {
    background: var(--jr-p-600);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.1rem;
}
.jr-emp-card-verif {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    font-size: 0.75rem;
}
.jr-emp-card-cuerpo {
    padding: 2rem 1rem 1rem;
}

/* --- Estados (publicado, borrador, suspendido...) con contraste AA --- */
.jr-ver-estado.is-publicado { background: #d1fae5; color: #065f46; }
.jr-ver-estado.is-suspendido { background: #fee2e2; color: #991b1b; }
.jr-ver-estado.is-borrador { background: var(--jr-s-100); color: var(--jr-s-700); }
.jr-ver-estado.is-verificado { background: #dbeafe; color: #1e40af; }

/* --- Estado vacío dentro de un panel --- */
.jr-ver-vacio-panel {
    text-align: center;
    padding: 3rem 1.5rem;
}
.jr-ver-vacio-panel > .bi {
    font-size: 2.5rem;
    color: var(--jr-s-400);
}
.jr-ver-vacio-panel .jr-subsection-title {
    color: var(--jr-s-800);
    margin: 0.75rem 0 0.25rem;
}
.jr-ver-vacio-panel p {
    color: var(--jr-s-600);
    max-width: 30rem;
    margin: 0 auto 1.25rem;
}

/* --- Lista de ítems de gestión (mis emprendimientos, etc.) --- */
.jr-ver-lista {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.jr-ver-item {
    display: flex;
    gap: 1.25rem;
    padding: 1.25rem;
    align-items: center;
    flex-wrap: wrap;
}
.jr-ver-item-logo {
    flex-shrink: 0;
}
.jr-ver-item-logo img,
.jr-ver-item-inicial {
    width: 64px;
    height: 64px;
    border-radius: var(--jr-r);
    object-fit: cover;
    display: block;
}
.jr-ver-item-inicial {
    background: var(--jr-p-600);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.5rem;
}
.jr-ver-item-datos {
    flex: 1;
    min-width: 220px;
}
.jr-ver-item-titulo {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.25rem;
}
.jr-ver-item-titulo .jr-subsection-title {
    margin: 0;
}
.jr-ver-item-sub {
    font-size: 0.8125rem;
    color: var(--jr-s-600);
}
.jr-ver-item-acciones {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.jr-ver-nota {
    color: var(--jr-s-600);
    font-size: 0.8125rem;
    margin-top: 1rem;
}


/* --- Estilos reutilizables de las vistas (reemplazan style="..." en línea) --- */
.jr-v-pad { padding:1.5rem; }
.jr-v-mb-125 { margin-bottom:1.25rem; }
.jr-v-mb-2 { margin-bottom:2rem; }
.jr-v-mb-15 { margin-bottom:1.5rem; }
.jr-v-mb-1 { margin-bottom:1rem; }
.jr-v-mt-15 { margin-top:1.5rem; }
.jr-v-flex-1 { flex:1;min-width:0; }
.jr-v-no-shrink { flex-shrink:0; }
.jr-v-m0 { margin:0; }
.jr-v-oculta { overflow:hidden; }
.jr-v-scroll-x { overflow-x:auto; }
.jr-v-vacio-icono { font-size:2.5rem;color:var(--jr-s-400);display:block;margin-bottom:1rem; }
.jr-v-icono-p { color:var(--jr-p-600); }
.jr-v-texto-sec { color:var(--jr-s-600); }
.jr-v-texto-sec-sm { color:var(--jr-s-600);font-size:.875rem; }
.jr-v-label { margin-bottom:.25rem;display:block; }
.jr-v-fila-wrap { display:flex;flex-wrap:wrap;gap:.5rem; }
.jr-v-fila-centro { display:flex;align-items:center;gap:.625rem; }
.jr-v-col-625 { display:flex;flex-direction:column;gap:.625rem; }
.jr-v-col-5 { display:flex;flex-direction:column;gap:.5rem; }
.jr-v-col-75 { display:flex;flex-direction:column;gap:.75rem; }
.jr-v-col-1 { display:flex;flex-direction:column;gap:1rem; }
.jr-v-contador { display:inline-block;background:var(--jr-s-100);color:var(--jr-s-700);border-radius:99px;padding:.1rem .5rem;font-size:.75rem;margin-left:.25rem; }
.jr-v-prosa { color:var(--jr-s-700);line-height:1.75; }
.jr-v-etiqueta { font-size:.75rem;color:var(--jr-s-600);text-transform:uppercase;letter-spacing:.04em; }
.jr-v-nota-xs { font-size:.75rem;color:var(--jr-s-600); }
.jr-v-nota-sm { font-size:.8125rem;color:var(--jr-s-600); }
.jr-v-nombre { font-weight:600;font-size:.9375rem;color:var(--jr-s-900); }
.jr-v-centro-pad { text-align:center;padding:.875rem; }
.jr-v-icono-a { color:var(--jr-a-600); }
.jr-v-alerta-sm { font-size:.875rem;margin-bottom:.75rem; }
.jr-v-alerta-xs { font-size:.8125rem;margin-bottom:.75rem; }
.jr-v-icono-fila { color:var(--jr-s-600);font-size:1rem;width:16px;text-align:center;flex-shrink:0; }
.jr-v-icono-gris { color:var(--jr-s-600);font-size:1rem; }
.jr-v-texto-sec-mb { color:var(--jr-s-600);margin-bottom:1.25rem; }
.jr-v-badge-xs { font-size:.75rem;flex-shrink:0; }
.jr-v-chip { background:var(--jr-s-100);color:var(--jr-s-700);border-radius:var(--jr-r);padding:.3rem .75rem;font-size:.8125rem; }
.jr-v-chip-color { background:var(--jr-s-100);color:var(--jr-s-700); }
.jr-v-avatar-36 { width:36px;height:36px;border-radius:50%;flex-shrink:0;background:var(--jr-s-100);display:flex;align-items:center;justify-content:center;overflow:hidden; }
.jr-v-fila-item { display:flex;align-items:center;gap:1rem;padding:.875rem 1rem; }
.jr-v-titulo-fila { display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;margin-bottom:.25rem; }
.jr-v-titulo-fila-sm { display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.375rem; }
.jr-v-meta-fila { display:flex;gap:1rem;font-size:.8125rem;color:var(--jr-s-600);flex-wrap:wrap; }
.jr-v-peso-normal { font-weight:400; }
.jr-v-texto-mb { color:var(--jr-s-700);margin-bottom:.75rem; }
.jr-v-mapa { border-radius:var(--jr-r-lg);overflow:hidden;height:280px; }
.jr-v-sin-borde { border:0; }
.jr-v-vacio-chico { text-align:center;padding:1.5rem;color:var(--jr-s-600); }
.jr-v-pad-cab { padding:1.25rem 1.5rem; }
.jr-v-cifra { font-family:var(--jr-font-head);font-size:1.5rem;font-weight:800;color:var(--jr-s-900); }
.jr-v-my-125 { margin:1.25rem 0; }
.jr-v-w-45 { width:4.5rem; }
.jr-v-gris-claro { color:var(--jr-s-400); }
.jr-v-mt-625 { margin-top:.625rem; }
.jr-v-icono-grande { font-size:1.5rem;display:block;margin-bottom:.5rem; }
.jr-v-m0-sm { margin:0;font-size:.9375rem; }
.jr-v-sm { font-size:.875rem; }
.jr-v-precio { font-family:var(--jr-font-head);font-size:1.25rem;font-weight:800;margin-bottom:.25rem; }
.jr-v-fila-wrap-sm { margin-top:.375rem;display:flex;flex-wrap:wrap;gap:.375rem; }
.jr-v-pt-1 { padding-top:1rem; }

.jr-v-oculto[hidden], [hidden].jr-v-oculto { display:none; }

/* Texto de cupos sobre el encabezado índigo de la ficha: contraste AA */
.jr-detail-sidebar-head .jr-slots-text {
    color: rgb(255 255 255 / 0.9);
    text-align: center;
}
.jr-slots-text {
    color: var(--jr-s-600);
}

/* --- Selectores de mes / año / tipo --- */
.jr-ver-sel-mes { width: 140px; }
.jr-ver-sel-anio { width: 100px; }
.jr-ver-sel-tipo { width: 150px; }
@media (max-width: 640px) {
    .jr-ver-sel-mes,
    .jr-ver-sel-anio,
    .jr-ver-sel-tipo { width: 100%; }
}

/* --- Ventana de detalle de evento (calendarios) --- */
.jr-ver-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1050;
    background: rgb(0 0 0 / 0.45);
    align-items: center;
    justify-content: center;
}
.jr-ver-modal-caja {
    background: #fff;
    border-radius: var(--jr-r-xl);
    max-width: 480px;
    width: 90%;
    padding: 2rem;
    position: relative;
    border: 1px solid var(--jr-s-200);
}
.jr-ver-modal-cerrar {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    width: 44px;
    height: 44px;
    background: none;
    border: none;
    font-size: 1.25rem;
    cursor: pointer;
    color: var(--jr-s-600);
    border-radius: var(--jr-r);
}
.jr-ver-modal-cerrar:hover { color: var(--jr-s-900); background: var(--jr-s-100); }
.jr-ver-modal-cerrar:focus-visible { outline: 3px solid var(--jr-p-300); outline-offset: 1px; }
.jr-ver-modal-titulo { font-weight: 800; margin-bottom: 0.75rem; padding-right: 2rem; }
.jr-ver-modal-meta { font-size: 0.875rem; color: var(--jr-s-600); margin-bottom: 0.875rem; }
.jr-ver-modal-desc { font-size: 0.9rem; color: var(--jr-s-700); margin-bottom: 1.25rem; }
.jr-ver-modal-gcal { display: flex; align-items: center; justify-content: center; gap: 0.4rem; }

/* --- Calendario: días de otro mes legibles (AA) --- */
.fc .fc-day-other .fc-daygrid-day-top { opacity: 1; }
.fc .fc-day-other .fc-daygrid-day-number { color: var(--jr-s-500); }

/* --- Agenda del calendario --- */
.jr-ver-agenda-titulo { color: var(--jr-s-700); margin-bottom: 1.25rem; }
.jr-ver-agenda-item {
    display: grid;
    grid-template-columns: 6px 1fr;
    overflow: hidden;
}
.jr-ver-agenda-borde { border-radius: var(--jr-r-lg) 0 0 var(--jr-r-lg); }
.jr-ver-agenda-cuerpo {
    padding: 1.25rem;
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
    flex-wrap: wrap;
}
.jr-ver-agenda-fecha {
    text-align: center;
    min-width: 52px;
    flex-shrink: 0;
    background: var(--jr-s-50);
    border-radius: var(--jr-r);
    border: 1px solid var(--jr-s-100);
    padding: 0.5rem 0.75rem;
}
.jr-ver-agenda-mes {
    font-size: 0.75rem;
    color: var(--jr-s-600);
    font-weight: 600;
    text-transform: uppercase;
}
.jr-ver-agenda-dia {
    font-size: 1.5rem;
    font-weight: 800;
    font-family: var(--jr-font-head);
    color: var(--jr-p-600);
    line-height: 1;
}
.jr-ver-agenda-link { font-size: 1rem; }
.jr-ver-agenda-tipo {
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.2rem 0.5rem;
    border-radius: var(--jr-r);
}
.jr-ver-agenda-tipo.is-presencial { background: var(--jr-s-100); color: var(--jr-s-700); }
.jr-ver-agenda-tipo.is-virtual { background: var(--jr-p-100); color: var(--jr-p-700); }
.jr-ver-agenda-intro { margin-bottom: 0.5rem; }
.jr-ver-agenda-cta { align-self: center; flex-shrink: 0; }


/* --- Segunda tanda de estilos reutilizables --- */
.jr-v-tabs-barra { display:flex;gap:.5rem;margin-bottom:1.75rem;border-bottom:1px solid var(--jr-s-200); }
.jr-v-icono-p-sm { color:var(--jr-p-600);font-size:1rem; }
.jr-v-ok { color:var(--jr-success); }
.jr-v-grilla-220 { display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem; }
.jr-v-grilla-280 { display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-top:1rem; }
.jr-v-centro-mt { text-align:center;margin-top:1rem; }
.jr-v-pad-125 { padding:1.25rem; }
.jr-v-fila-inicio { display:flex;align-items:flex-start;gap:.625rem; }
.jr-v-pad-col { padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.875rem; }
.jr-v-sep-sup { padding-top:.25rem;border-top:1px solid var(--jr-s-100); }
.jr-v-fila-entre { display:flex;justify-content:space-between;align-items:center;font-size:.875rem;color:var(--jr-s-700); }
.jr-v-fuerte { font-weight:700;color:var(--jr-s-900); }
.jr-v-pad-fila { padding:1.5rem;display:flex;align-items:flex-start;gap:1rem;flex-wrap:wrap; }
.jr-v-mb-05 { margin-bottom:.5rem; }
.jr-v-prosa-sm { color:var(--jr-s-700);line-height:1.8;font-size:.9375rem; }
.jr-v-icono-xl { font-size:1.75rem;display:block;margin-bottom:.5rem; }
.jr-v-icono-vacio { font-size:1.5rem;color:var(--jr-s-600); }
.jr-v-w-100 { width:100px; }
.jr-v-titulo-fuerte { font-weight:800;margin-bottom:.75rem; }
.jr-v-meta-mb { font-size:.875rem;color:var(--jr-s-600);margin-bottom:.875rem; }
.jr-v-desc-mb { font-size:.9rem;color:var(--jr-s-700);margin-bottom:1.25rem; }
.jr-v-sm-sec { font-size:.875rem;color:var(--jr-s-600); }
.jr-v-gris { color:var(--jr-s-600); }
.jr-v-gris-oscuro { color:var(--jr-s-600); }
.jr-v-gris-700 { color:var(--jr-s-700); }
.jr-v-gris-900 { color:var(--jr-s-900); }
.jr-v-mb-075 { margin-bottom:.75rem; }
.jr-v-mb-0375 { margin-bottom:.375rem; }
.jr-v-mt-1 { margin-top:1rem; }
.jr-v-mt-05 { margin-top:.5rem; }
.jr-v-mt-025 { margin-top:.25rem; }
.jr-v-centro { text-align:center; }
.jr-v-derecha { text-align:right; }
.jr-v-w-100p { width:100%; }
.jr-v-bloque { display:block; }
.jr-v-fila-gap { display:flex;gap:.5rem;align-items:center; }
.jr-v-fila-wrap-75 { display:flex;gap:.75rem;flex-wrap:wrap; }
.jr-v-fila-gap-75 { display:flex;align-items:center;gap:.75rem; }
.jr-v-fila-gap-1 { display:flex;align-items:center;gap:1rem; }
.jr-v-fila-entre-wrap { display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap; }
.jr-v-mt-01 { margin-top: .1rem; }
.jr-v-bloque { display: block; }

/* --- Tooltip de badge (se abre con mouse o foco de teclado) --- */
.jr-tip {
    position: relative;
    cursor: help;
}
.jr-tip::after {
    content: attr(data-tip);
    position: absolute;
    left: 0;
    bottom: calc(100% + 0.5rem);
    z-index: 20;
    width: max-content;
    max-width: min(15rem, 70vw);
    padding: 0.5rem 0.75rem;
    border-radius: var(--jr-r);
    background: var(--jr-s-900);
    color: #fff;
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.4;
    text-align: left;
    white-space: normal;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.15s;
}
.jr-tip:hover::after,
.jr-tip:focus-visible::after {
    opacity: 1;
    visibility: visible;
}
.jr-tip:focus-visible {
    outline: 3px solid var(--jr-p-300);
    outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
    .jr-tip::after { transition: none; }
}

/* --- Barra superior: entre 768 y 1179 px el menú completo no entra (mide ~1170 px) y la página
   se corría hacia un costado. En ese rango se usa el menú desplegable, igual que en móvil. --- */
@media (min-width: 768px) and (max-width: 1179px) {
    .jr-navbar-inner .jr-nav-links,
    .jr-navbar-inner .jr-navbar-auth {
        display: none;
    }
    .jr-navbar-inner .jr-hamburger {
        display: flex;
    }
}
