/* BVQ Mercado en Línea — ranking de casas de valores.
 * Se apoya en bvq-tabla.css (tarjetas, pestañas, tabla) y en los tokens de
 * marca de bvq-mercado.css; aquí solo va lo propio del ranking. */

.bvq-rk-titulo{
	margin:0 0 22px;text-align:center;
	font-size:clamp(24px,3.4vw,34px);font-weight:400;letter-spacing:.02em;
	text-transform:uppercase;color:var(--bvq-azul);
}

/* Segunda lectura de la tarjeta: el acumulado del año. */
.bvq-rk-anio{margin-top:6px;padding-top:7px;border-top:1px solid var(--bvq-line)}
.bvq-rk-anio strong{color:var(--bvq-azul);font-weight:600;font-variant-numeric:tabular-nums}

/* Qué mide la pestaña, antes de la tabla. */
.bvq-rk-que{
	display:flex;align-items:flex-start;gap:6px;
	margin:0;padding:14px 16px 10px;font-size:13.5px;color:var(--bvq-muted);line-height:1.5;
}

.bvq-rk-error{
	margin:8px 0;padding:10px 14px;border-left:3px solid var(--bvq-rojo);
	background:#fdf2f2;color:var(--bvq-azul);font-size:13.5px;
}

/* Puesto: número en un círculo; el podio con el tricolor de marca, del más
   fuerte al más suave, para que el primer lugar se lea de un vistazo. */
.bvq-ranking .bvq-c-puesto{width:64px;text-align:center}
.bvq-ranking th.bvq-c-puesto .bvq-th-wrap{justify-content:center}
.bvq-rk-n{
	display:inline-flex;align-items:center;justify-content:center;
	min-width:28px;height:28px;padding:0 6px;border-radius:999px;
	font-size:13px;font-weight:600;color:var(--bvq-muted);font-variant-numeric:tabular-nums;
}
.bvq-rk-podio{color:#fff}
.bvq-rk-1{background:var(--bvq-azul)}
.bvq-rk-2{background:var(--bvq-rojo)}
.bvq-rk-3{background:var(--bvq-amarillo);color:var(--bvq-azul)}

.bvq-ranking .bvq-c-casa{font-weight:500;color:var(--bvq-azul)}
.bvq-ranking .bvq-c-casa a{color:inherit;text-decoration:underline;text-decoration-color:var(--bvq-line-2);text-underline-offset:3px}
.bvq-ranking .bvq-c-casa a:hover{text-decoration-color:currentColor}

/* Participación: cifra + barra proporcional. La barra es apoyo visual; el
   dato es el número, así que la barra va oculta para lectores de pantalla. */
.bvq-c-part{white-space:nowrap}
.bvq-rk-barra{
	display:inline-block;vertical-align:middle;
	width:64px;height:6px;margin-right:8px;border-radius:3px;
	background:var(--bvq-line);overflow:hidden;
}
.bvq-rk-barra > span{display:block;height:100%;background:var(--bvq-azul);border-radius:3px}

/* Fila de totales. */
.bvq-ranking tfoot .bvq-rk-total th,
.bvq-ranking tfoot .bvq-rk-total td{
	padding:12px 14px;border-top:2px solid var(--bvq-azul);
	font-weight:700;color:var(--bvq-azul);font-variant-numeric:tabular-nums;
	background:var(--bvq-surface);
}
.bvq-ranking tfoot .bvq-rk-total th{text-align:left}

@media (max-width:640px){
	.bvq-rk-barra{display:none}
	.bvq-ranking .bvq-c-puesto{width:44px}
}

@media print{
	.bvq-rk-que,.bvq-rk-barra{display:none}
	.bvq-rk-podio{background:none!important;color:inherit!important;border:1px solid #999}
}

/* =======================================================================
 * 1.10.0 — gráfico de participación, puesto del mes, ficha por casa.
 * ======================================================================= */

/* --- Gráfico: una sola serie, un solo color (azul institucional). Barras
   de 12px (la guía de datos pide no más de 24), punta redondeada de 4px y
   base recta; el valor en la punta, en color de texto, nunca en el de la
   barra. «Resto» en gris para no leerse como una casa más. --- */
.bvq-rk-graf{margin:0;padding:6px 16px 16px}
.bvq-rk-graf figcaption{
	display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px;
	margin-bottom:10px;
}
.bvq-rk-graf-t{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--bvq-azul)}
/* Texto en línea normal, no flex: con flex cada trozo de texto se vuelve un
   elemento aparte y en móvil la frase se partía en columnas. */
.bvq-rk-graf-c{font-size:13px;line-height:1.5;color:var(--bvq-ink-2)}
.bvq-rk-graf-c .bvq-i{vertical-align:middle}
.bvq-rk-graf-c strong{color:var(--bvq-azul);font-variant-numeric:tabular-nums}
.bvq-rk-barras{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.bvq-rk-barras li{
	display:grid;grid-template-columns:minmax(150px,280px) 1fr 56px;align-items:center;gap:12px;
	margin:0;font-size:12.5px;color:var(--bvq-ink-2);
}
.bvq-rk-b-nom{display:flex;align-items:center;gap:8px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bvq-rk-b-n{flex:none;width:18px;text-align:right;color:var(--bvq-muted);font-variant-numeric:tabular-nums}
.bvq-rk-b-pista{display:block;height:12px}
.bvq-rk-b-barra{display:block;height:100%;min-width:2px;background:var(--bvq-azul);border-radius:0 4px 4px 0}
.bvq-rk-barras li.is-resto{margin-top:4px;padding-top:6px;border-top:1px dashed var(--bvq-line-2)}
.bvq-rk-barras li.is-resto .bvq-rk-b-barra{background:var(--bvq-line-2)}
.bvq-rk-barras li.is-resto .bvq-rk-b-nom{color:var(--bvq-muted);padding-left:26px}
.bvq-rk-b-v{text-align:right;font-weight:600;color:var(--bvq-azul);font-variant-numeric:tabular-nums}

/* --- Aviso de inicio de mes. --- */
.bvq-rk-nota{
	margin:0;padding:9px 16px;font-size:12.5px;color:var(--bvq-azul);
	background:var(--bvq-amarillo-soft);border-bottom:1px solid var(--bvq-line);
}

/* --- Variación de puesto. Sube en azul, baja en gris: es una variación,
   no una alarma; la flecha y el texto oculto dicen lo mismo que el color. --- */
.bvq-rk-var{display:inline-block;margin-left:6px;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.bvq-rk-sube{color:var(--bvq-azul)}
.bvq-rk-baja{color:var(--bvq-muted)}
.bvq-rk-igual{color:var(--bvq-line-2)}

/* --- Ficha por casa (fila de detalle). --- */
/* Si la tabla se desplaza en horizontal, la ficha (que ocupa todo el ancho de
   la tabla) se queda pegada al área visible en vez de cortarse a la derecha. */
.bvq-rk-ficha{
	border-top:1px dashed var(--bvq-line-2);padding-top:13px;
	position:sticky;left:12px;max-width:min(1100px, calc(100vw - 56px));
}
.bvq-rk-ficha-t{margin:0 0 10px;font-weight:700;color:var(--bvq-azul)}
.bvq-rk-ficha-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.bvq-rk-ficha-c{
	display:flex;flex-direction:column;gap:3px;padding:11px 13px;
	background:var(--bvq-surface);border:1px solid var(--bvq-line);border-radius:8px;
}
.bvq-rk-ficha-p{font-size:20px;font-weight:700;color:var(--bvq-azul);font-variant-numeric:tabular-nums}
.bvq-rk-ficha-p small{font-size:12px;font-weight:400;color:var(--bvq-muted)}
.bvq-rk-ficha-s{font-size:12.5px;color:var(--bvq-ink-2);font-variant-numeric:tabular-nums}

@media (max-width:640px){
	/* En móvil el nombre va arriba y la barra con su valor debajo. */
	.bvq-rk-barras li{grid-template-columns:1fr 52px;gap:2px 10px}
	.bvq-rk-b-nom{grid-column:1 / -1}
	.bvq-rk-graf{padding:6px 14px 14px}
}

@media print{
	.bvq-rk-graf{break-inside:avoid}
	.bvq-rk-nota{display:none}
}

/* =======================================================================
 * 1.13.0 — gráfico en una columna angosta al lado de la tabla.
 * Se decide por el ancho del propio widget (container query), no por el de
 * la pantalla: así funciona igual en una columna de Elementor.
 * ======================================================================= */

/* Con gráfico, el panel deja de ser una caja: cada columna lleva la suya. */
.bvq-ranking .bvq-t-panel.bvq-rk-panel-g{background:none;border:0;border-radius:0;overflow:visible;container-type:inline-size}
.bvq-rk-cuerpo.has-graf{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
.bvq-rk-cuerpo.has-graf > .bvq-rk-graf,
.bvq-rk-cuerpo.has-graf > .bvq-rk-datos{
	min-width:0;background:var(--bvq-surface);border:1px solid var(--bvq-line);
	border-radius:var(--bvq-radius);overflow:hidden;
}
.bvq-rk-cuerpo.has-graf > .bvq-rk-datos{container-type:inline-size}
@container (min-width:1100px){
	.bvq-rk-cuerpo.has-graf{grid-template-columns:minmax(250px,26%) minmax(0,1fr)}
	/* Acompaña a la tabla cuando se muestran muchas filas. */
	.bvq-rk-cuerpo.has-graf > .bvq-rk-graf{position:sticky;top:var(--bvq-sticky-top,24px)}
}

/* Caja del gráfico: cabecera azul como la barra de la tabla. */
.has-graf .bvq-rk-graf{margin:0;padding:0}
.has-graf .bvq-rk-graf figcaption{
	display:flex;align-items:baseline;justify-content:space-between;gap:8px;
	margin:0;padding:13px 16px;background:var(--bvq-azul);
}
.has-graf .bvq-rk-graf-t{color:#fff;font-size:12px}
.bvq-rk-graf-n{font-size:12px;color:rgba(255,255,255,.75);white-space:nowrap}
.has-graf .bvq-rk-que{padding:12px 16px 2px;font-size:13px}

/* Barras: nombre arriba, barra y valor debajo (cabe en la columna angosta). */
.has-graf .bvq-rk-barras{padding:8px 16px 14px;gap:7px}
.has-graf .bvq-rk-barras li{grid-template-columns:minmax(0,1fr) 46px;gap:3px 8px}
.has-graf .bvq-rk-b-nom{grid-column:1 / -1}
.has-graf .bvq-rk-b-pista{height:10px}
.has-graf .bvq-rk-graf-c{
	display:block;margin:0;padding:11px 16px;border-top:1px solid var(--bvq-line);
	background:var(--bvq-surface-2);font-size:12.5px;
}

/* La ficha de cada fila se ajusta al ancho de su columna, no al de la pantalla. */
.has-graf .bvq-rk-ficha{max-width:calc(100cqw - 40px)}
.has-graf .bvq-rk-graf figcaption{flex-wrap:wrap}
.bvq-ranking .bvq-c-casa{white-space:nowrap}
.has-graf .bvq-ranking .bvq-c-casa,.has-graf td.bvq-c-casa{white-space:normal}
/* La columna de la tabla es más angosta que el widget: con 700 px caben las
   siete columnas del ranking sin desplazamiento a partir de ~1100 px. */
.has-graf .bvq-t{min-width:700px}
/* Al lado del gráfico la tabla se aprieta: la barrita de participación por
   fila repite lo que ya muestra el gráfico, y las celdas van con menos aire. */
.has-graf .bvq-rk-barra{display:none}
.has-graf .bvq-t tbody td{padding-left:9px;padding-right:9px}
.has-graf .bvq-th-wrap{padding-right:6px}
/* Los encabezados largos («Participación anual», «Puesto en el mes») pasan a
   dos líneas en vez de ensanchar la tabla. */
.has-graf .bvq-t thead th{white-space:normal}
.has-graf .bvq-t .bvq-th{white-space:normal;line-height:1.3;text-align:inherit}
.has-graf .bvq-t th.bvq-r .bvq-th{text-align:right}
.has-graf .bvq-t .bvq-th{letter-spacing:.04em}
