/* AmCham Gráficas — tarjetas y gráficas SVG (Figma WIP «Comercio Panamá-EE. UU.» 2493:10909, 7 oct 2026).
   Paleta validada para daltonismo (protan/deutan/tritan, ΔE ≥ 16 entre vecinos): azul, rojo, celeste, ámbar.
   El azul de las barras es un paso más claro que el navy de marca (#133E7F queda fuera de la banda de luminosidad
   de una serie de datos); las tarjetas de cifras sí van en navy de marca. */

.agraf,
.agraf-cifras,
.agraf-vacio {
	--agraf-s1: #1F4E96;
	--agraf-s2: #D3263A;
	--agraf-s3: #5FA8E0;
	--agraf-s4: #C98A12;
	--agraf-tinta: #222222;
	--agraf-tinta-2: #4A4F57;
	--agraf-gris: #767676;
	--agraf-guia: #E4E7EC;
	--agraf-base: #AEB5BF;
	--agraf-cero: #8C939D;
	--agraf-fuente-titulo: var(--amcham-font-heading, "Avenir Next", "Helvetica Neue", Arial, sans-serif);
	--agraf-fuente-texto: var(--amcham-font-body, Helvetica, Arial, sans-serif);
}

/* El elemento de Bricks es un div; Bricks alinea a flex-start, así que hay que estirarlo. */
.agraf-wrap { width: 100%; min-width: 0; }

/* ---------- tarjeta ---------- */
.agraf.agraf {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 16px;
	min-width: 0;
	margin: 0;
	padding: 28px;
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 6px 10px rgb(0 0 0 / .05);
	color: var(--agraf-tinta);
	font-family: var(--agraf-fuente-texto);
}
.agraf.agraf--mitad { padding: 24px; }
.agraf .agraf__cab { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin: 0; text-align: left; }   /* el tema centra los figcaption */
.agraf .agraf__titulo {
	margin: 0;
	font-family: var(--agraf-fuente-titulo);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0;
	color: var(--agraf-tinta);
}
.agraf .agraf__sub { margin: 0; font-size: 13px; line-height: 1.4; color: var(--agraf-gris); }
.agraf .agraf__nota { margin: 0; font-size: 13px; line-height: 1.4; color: var(--agraf-tinta-2); }
.agraf .agraf__fuente { margin: 0; font-size: 12px; line-height: 1.5; color: var(--agraf-gris); }

.agraf .agraf__leyenda {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 13px;
	line-height: 1.4;
	color: var(--agraf-tinta-2);
}
.agraf .agraf__leyenda li { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 0; }
.agraf .agraf__leyenda li::before { content: none; }
.agraf .agraf__sw { flex: 0 0 auto; display: inline-block; width: 10px; height: 10px; border-radius: 2px; background: var(--sw); }

/* ---------- lienzo SVG ---------- */
.agraf .agraf__lienzo { position: relative; min-height: var(--agraf-alto, 280px); }
.agraf.is-listo .agraf__lienzo { min-height: 0; }
.agraf .agraf__lienzo svg { display: block; width: 100%; height: auto; max-width: none; overflow: visible; }
.agraf svg text { font-family: var(--agraf-fuente-texto); font-size: 12px; fill: var(--agraf-tinta-2); }
.agraf svg .agraf__eje { fill: var(--agraf-gris); font-variant-numeric: tabular-nums; }
.agraf svg .agraf__cat { fill: var(--agraf-tinta-2); }
.agraf svg .agraf__valor { fill: var(--agraf-tinta); paint-order: stroke; stroke: #fff; stroke-width: 4px; stroke-linejoin: round; }
.agraf svg .agraf__valor--2 { fill: var(--agraf-tinta-2); }
.agraf svg .agraf__valor--chico { font-size: 10.5px; }
.agraf .agraf__guia { stroke: var(--agraf-guia); stroke-width: 1; shape-rendering: crispEdges; }
.agraf .agraf__base { stroke: var(--agraf-base); stroke-width: 1; shape-rendering: crispEdges; }
.agraf .agraf__cero { stroke: var(--agraf-cero); stroke-width: 1; shape-rendering: crispEdges; }
.agraf .agraf-c-s1 { fill: var(--agraf-s1); }
.agraf .agraf-c-s2 { fill: var(--agraf-s2); }
.agraf .agraf-c-s3 { fill: var(--agraf-s3); }
.agraf .agraf-c-s4 { fill: var(--agraf-s4); }
.agraf .agraf__barra--parcial { fill-opacity: .35; }
.agraf .agraf__grupo { transition: opacity .15s ease; }
.agraf .agraf__grupo.is-atenuado { opacity: .35; }
.agraf .agraf__zona { fill: transparent; }

/* ---------- línea con área ---------- */
.agraf svg .agraf__area { fill-opacity: 1; }
.agraf svg .agraf__area-ini { stop-color: var(--agraf-s1); stop-opacity: .16; }
.agraf svg .agraf__area-fin { stop-color: var(--agraf-s1); stop-opacity: 0; }
.agraf svg .agraf__linea { fill: none; stroke: var(--agraf-s1); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.agraf svg .agraf__linea--parcial { stroke-dasharray: 2 6; stroke-width: 2.5; }
.agraf svg .agraf__punto { fill: var(--agraf-s1); stroke: #fff; stroke-width: 2; }
.agraf svg .agraf__punto--parcial { fill: #fff; stroke: var(--agraf-s1); stroke-width: 2; }
.agraf svg .agraf__cursor { stroke: var(--agraf-cero); stroke-width: 1; stroke-dasharray: 3 3; opacity: 0; transition: opacity .15s ease; }
.agraf svg .agraf__cursor.is-visible { opacity: 1; }

/* ---------- ayuda emergente ---------- */
.agraf .agraf__tip {
	position: absolute;
	z-index: 5;
	left: 0;
	top: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 150px;
	padding: 10px 12px;
	background: #fff;
	border: 1px solid var(--agraf-guia);
	border-radius: 8px;
	box-shadow: 0 8px 20px rgb(0 0 0 / .12);
	font-size: 13px;
	line-height: 1.4;
	color: var(--agraf-tinta);
	white-space: nowrap;
	pointer-events: none;
	opacity: 0;
	transform: translate(-50%, -100%);
	transition: opacity .12s ease;
}
.agraf .agraf__tip.is-visible { opacity: 1; }
.agraf .agraf__tip-cat { font-family: var(--agraf-fuente-titulo); font-weight: 600; font-size: 13px; }
.agraf .agraf__tip-fila { display: flex; align-items: center; gap: 8px; }
.agraf .agraf__tip-fila b { margin-left: auto; padding-left: 12px; font-weight: 700; font-variant-numeric: tabular-nums; }
.agraf .agraf__tip-n { color: var(--agraf-tinta-2); }
.agraf .agraf__tip-fila .agraf__tip-n:last-child { margin-left: 8px; color: var(--agraf-gris); }
.agraf .agraf__tip-nota { font-size: 12px; color: var(--agraf-gris); }

/* tabla con los datos: solo para lectores de pantalla y buscadores (el envoltorio, no la tabla: una tabla ignora width:1px) */
.agraf .agraf__datos {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* ---------- dona ---------- */
.agraf .agraf-dona { display: flex; align-items: center; gap: 48px; min-width: 0; }
.agraf .agraf-dona .agraf__lienzo { flex: 0 0 auto; width: 220px; min-height: 0; }
.agraf svg .agraf__seg { transition: opacity .15s ease; }
.agraf svg .agraf__seg.is-atenuado { opacity: .35; }
.agraf svg .agraf__centro { font-family: var(--agraf-fuente-titulo); font-size: 20px; font-weight: 600; fill: var(--agraf-tinta); }
.agraf svg .agraf__centro-sub { font-size: 12px; fill: var(--agraf-gris); }
.agraf .agraf-dona__lista { flex: 1 1 auto; min-width: 0; margin: 0; padding: 0; list-style: none; }
.agraf .agraf-dona__fila {
	display: grid;
	grid-template-columns: 12px minmax(0, 1fr) auto 60px;
	align-items: center;
	column-gap: 12px;
	margin: 0;
	padding: 14px 0;
	border-bottom: 1px solid var(--agraf-guia);
	font-size: 15px;
	line-height: 1.4;
	color: var(--agraf-tinta);
	transition: opacity .15s ease;
}
.agraf .agraf-dona__fila::before { content: none; }
.agraf .agraf-dona__fila:last-child { border-bottom: 0; }
.agraf .agraf-dona__sw { width: 12px; height: 12px; border-radius: 2px; background: var(--sw); }
.agraf .agraf-dona__valor { font-weight: 700; font-variant-numeric: tabular-nums; }
.agraf .agraf-dona__part { color: var(--agraf-gris); text-align: right; font-variant-numeric: tabular-nums; }
.agraf .agraf-dona.is-hover .agraf-dona__fila:not(.is-activo) { opacity: .45; }

/* ---------- cifras del año ---------- */
.agraf-cifras.agraf-cifras { container: agrafc / inline-size; display: flex; flex-direction: column; gap: 16px; margin: 0; }
.agraf-cifras .agraf-cifras__titulo {
	margin: 0;
	font-family: var(--agraf-fuente-titulo);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0;
	color: var(--agraf-tinta);
}
.agraf-cifras .agraf-cifras__lista {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.agraf-cifras .agraf-cifras__item {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 18px;
	border-radius: 10px;
	background: var(--amcham-color-navy, #133E7F);
	color: #fff;
}
.agraf-cifras .agraf-cifras__item::before { content: none; }
.agraf-cifras .agraf-cifras__label { min-height: 2.8em; font-size: 13px; line-height: 1.4; color: rgb(255 255 255 / .85); }
.agraf-cifras .agraf-cifras__valor {
	font-family: var(--agraf-fuente-titulo);
	font-size: clamp(17px, 2.5cqi, 22px);
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
	color: #fff;
}
.agraf-cifras .agraf-cifras__delta { font-size: 12px; line-height: 1.4; color: rgb(255 255 255 / .8); }
/* 4 en fila solo si cada tarjeta tiene aire (≥ 880 px de columna); si no, 2 × 2 */
@container agrafc (max-width: 879px) {
	.agraf-cifras .agraf-cifras__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.agraf-cifras .agraf-cifras__valor { font-size: clamp(15px, 4.9cqi, 22px); }
}
@container agrafc (max-width: 420px) {
	.agraf-cifras .agraf-cifras__lista { gap: 10px; }
	.agraf-cifras .agraf-cifras__item { padding: 14px; }
	.agraf-cifras .agraf-cifras__valor { font-size: clamp(15px, 5.1cqi, 22px); }
}

/* ---------- dos gráficas en una fila (Div de Bricks con la clase «agraf-par») ---------- */
.agraf-par.agraf-par { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; width: 100%; }
.agraf-par > .agraf-wrap { display: flex; }
.agraf-par > .agraf-wrap > .agraf { flex: 1 1 auto; }
.agraf-par .agraf .agraf__lienzo { margin-top: auto; }   /* ejes a la misma altura aunque la leyenda de una ocupe dos líneas */

/* línea de fuente suelta (Texto básico con la clase «agraf-fuente») */
.agraf-fuente.agraf-fuente { margin: 0; font-size: 12px; line-height: 1.5; color: #767676; }

/* aviso sin datos (solo lo ve quien puede editar) */
.agraf-vacio {
	padding: 24px;
	border: 1px dashed var(--agraf-base);
	border-radius: 10px;
	background: #fff;
	font-family: var(--agraf-fuente-texto);
	font-size: 14px;
	color: var(--agraf-tinta-2);
}

/* ---------- móvil ---------- */
@container agraf (max-width: 560px) {
	.agraf .agraf-dona { flex-direction: column; align-items: stretch; gap: 20px; }
	.agraf .agraf-dona .agraf__lienzo { align-self: center; }
}
.agraf.agraf { container: agraf / inline-size; }
@media (max-width: 767px) {
	.agraf.agraf, .agraf.agraf--mitad { padding: 20px; }
	.agraf-par.agraf-par { grid-template-columns: minmax(0, 1fr); }
	.agraf .agraf-dona__fila { font-size: 14px; grid-template-columns: 12px minmax(0, 1fr) auto 52px; }
}
