/* DEET Miembros — pestañas, fichas de investigadores y métricas.
   Lenguaje editorial: filetes, cifras grandes en peso ligero, sin tarjetas ni chips.
   Usa las variables del tema DEET si existen. */

.dm-tabs-wrap,
.dm-panel {
	--dm-navy: var(--deet-navy, #002856);
	--dm-blue: var(--deet-blue, #0a56ae);
	--dm-red: var(--deet-red, #6f6f6f);
	--dm-sky: var(--deet-sky, #b6cce7);
	--dm-paper: var(--deet-paper, #f6f6f4);
	--dm-line: var(--deet-line, #d9dde3);
	--dm-muted: var(--deet-muted, #5b6675);
	--dm-ease: cubic-bezier(.16, 1, .3, 1);
}

/* ---------- Pestañas ---------- */
.dm-tabs-wrap {
	position: sticky;
	top: var(--dm-sticky-top, 0px);
	z-index: 20;
	background: #fff;
	border-bottom: 1px solid var(--dm-line);
	margin-top: 0 !important;
}
.dm-tabs { display: flex; gap: 2.2rem; overflow-x: auto; scrollbar-width: none; }
.dm-tabs::-webkit-scrollbar { display: none; }
.dm-tab {
	position: relative;
	padding: 1.15rem 0 1rem;
	font-weight: 600;
	font-size: 1.02rem;
	color: var(--dm-muted) !important;
	text-decoration: none !important;
	white-space: nowrap;
	transition: color .2s;
}
.dm-tab::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -1px;
	height: 2px;
	background: var(--dm-red);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .45s var(--dm-ease);
}
.dm-tab:hover { color: var(--dm-navy) !important; }
.dm-tab[aria-selected="true"] { color: var(--dm-navy) !important; }
.dm-tab[aria-selected="true"]::after { transform: scaleX(1); }
.dm-tab__idx { display: none; }

.js-dm .dm-panel[hidden] { display: none !important; }
.dm-panel { padding-top: 3rem; padding-bottom: 1rem; }
.dm-panel:not([hidden]) { animation: dm-fade .5s var(--dm-ease); }
@keyframes dm-fade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* ---------- Encabezados ---------- */
.dm-head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 1.25rem 2.5rem;
	padding-bottom: 1.25rem;
	margin-bottom: .5rem;
	border-bottom: 2px solid var(--dm-navy);
}
.dm-eyebrow { margin: 0 0 .6rem; font-size: .82rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--dm-red); }
.dm-title { margin: 0; font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: 1.08; }
.dm-head__note { max-width: 30rem; margin: 0; color: var(--dm-muted); font-size: .95rem; }

/* ---------- Filtro por grupo (texto subrayado, no chips) ---------- */
.dm-filter { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; }
.dm-chip {
	--g: var(--dm-navy);
	appearance: none;
	border: 0 !important;
	background: none !important;
	color: var(--dm-muted) !important;
	padding: .2rem 0 !important;
	border-radius: 0 !important;
	box-shadow: inset 0 -2px 0 transparent !important;
	font: 500 .95rem/1.4 inherit !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	cursor: pointer;
	transition: color .2s, box-shadow .3s;
}
.dm-chip span { font-weight: 300; margin-left: .2rem; }
.dm-chip:hover { color: var(--dm-navy) !important; }
.dm-chip.is-active { color: var(--g) !important; box-shadow: inset 0 -2px 0 var(--g) !important; }

/* ---------- Fichas de investigadores ---------- */
.dm-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	column-gap: 3rem;
}
.dm-card {
	--g: var(--dm-navy);
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
	padding: 2rem 0 1.6rem;
	border-bottom: 1px solid var(--dm-line);
}
.dm-card::before {
	content: "";
	position: absolute;
	left: 0; bottom: -1px;
	width: 100%; height: 2px;
	background: var(--g);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .7s var(--dm-ease);
}
.dm-card:hover::before { transform: scaleX(1); }
.dm-card.is-hidden { display: none; }

.dm-card__head { display: flex; gap: 1.1rem; align-items: center; }
.dm-avatar { width: 68px; height: 68px; flex-shrink: 0; border-radius: 50%; object-fit: cover; }
.dm-avatar--initials {
	display: grid;
	place-items: center;
	background: var(--g);
	color: #fff;
	font-weight: 300;
	font-size: 1.45rem;
	letter-spacing: .02em;
}
.dm-card__id p { margin: 0; }
.dm-card__name { margin: 0 0 .25rem !important; font-size: 1.25rem !important; line-height: 1.2 !important; color: var(--dm-navy); }
.dm-card__role { font-size: .9rem; color: var(--dm-muted); }
.dm-card.is-lead .dm-card__role { color: var(--dm-red); font-weight: 600; }
.dm-card__group { font-size: .85rem; color: var(--g); margin-top: .1rem !important; }
.dm-card__group span { font-weight: 700; margin-right: .25rem; }

.dm-kpis,
.dm-group__kpis { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; }
.dm-kpis > div,
.dm-group__kpis > div { padding: .2rem 0; }
.dm-kpis > div + div,
.dm-group__kpis > div + div { padding-left: 1rem; border-left: 1px solid var(--dm-line); }
.dm-kpis dt,
.dm-group__kpis dt { font-size: .76rem; color: var(--dm-muted); margin: 0 0 .15rem; }
.dm-kpis dd,
.dm-group__kpis dd { margin: 0; font-size: 2rem; font-weight: 300; color: var(--dm-navy); line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }

/* Producción por año */
.dm-spark {
	display: grid;
	grid-template-columns: repeat(8, 1fr);
	gap: 3px;
	align-items: end;
	height: 46px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--dm-line);
	position: relative;
}
.dm-spark span { height: var(--h); background: color-mix(in srgb, var(--g) 30%, #fff); position: relative; transition: background .2s; }
.dm-spark span:last-child { background: var(--g); }
.dm-spark span:hover { background: var(--g); }
.dm-spark i { position: absolute; bottom: -17px; left: 0; right: 0; text-align: center; font-style: normal; font-size: .62rem; color: var(--dm-muted); }

.dm-topics { list-style: none; margin: 0; padding: 0; font-size: .88rem; color: var(--dm-muted); line-height: 1.5; }
.dm-topics li { display: inline; }
.dm-topics li + li::before { content: " · "; color: var(--dm-line); }

.dm-works summary { cursor: pointer; font-weight: 600; font-size: .92rem; color: var(--dm-navy); list-style: none; }
.dm-works summary::-webkit-details-marker { display: none; }
.dm-works summary::after { content: " ›"; display: inline-block; transition: transform .25s; }
.dm-works[open] summary::after { transform: rotate(90deg); }
.dm-works ol { margin: .8rem 0 0; padding-left: 1.1rem; font-size: .88rem; line-height: 1.4; }
.dm-works li { margin-bottom: .7rem; }
.dm-works li a { color: var(--dm-navy); }
.dm-works li span { display: block; color: var(--dm-muted); font-size: .8rem; margin-top: .15rem; }

.dm-card__links { margin-top: auto; display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; align-items: center; font-size: .85rem; }
.dm-card__links a { color: var(--dm-muted) !important; display: inline-flex; gap: .4rem; align-items: center; }
.dm-card__links a:hover { color: var(--dm-navy) !important; }

.dm-source { margin-top: 2rem; font-size: .85rem; color: var(--dm-muted); }
.dm-empty { color: var(--dm-muted); font-style: italic; }

/* ---------- Métricas ---------- */
.dm-kpi-band {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	margin: 0 0 3rem;
	padding: 2rem 0;
	border-bottom: 1px solid var(--dm-line);
}
.dm-kpi-band > div { padding-right: 1rem; }
.dm-kpi-band > div + div { padding-left: 1.4rem; border-left: 1px solid var(--dm-line); }
.dm-kpi-band dt { font-size: .82rem; color: var(--dm-muted); margin-bottom: .3rem; }
.dm-kpi-band dd { margin: 0; font-size: clamp(2.4rem, 4.4vw, 3.8rem); font-weight: 300; line-height: 1; color: var(--dm-navy); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.dm-kpi-band dd small { font-size: .45em; margin-left: .1rem; color: var(--dm-muted); }
.dm-kpi-band > div:nth-child(4) dd { color: var(--dm-red); }

.dm-groups { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; margin-bottom: 3.5rem; }
.dm-group { --g: var(--dm-navy); border-top: 2px solid var(--g); padding-top: 1.2rem; display: flex; flex-direction: column; gap: 1rem; }
.dm-group__code { margin: 0; font-size: .9rem; font-weight: 700; color: var(--g); }
.dm-group h3 { margin: -.6rem 0 0 !important; font-size: 1.2rem !important; line-height: 1.25 !important; color: var(--dm-navy); min-height: 2.5em; }
.dm-group__kpis { grid-template-columns: repeat(4, 1fr); }
.dm-group__kpis > div + div { padding-left: .8rem; }
.dm-group__kpis dd { font-size: 1.6rem; }
.dm-bar { height: 3px; background: var(--dm-line); }
.dm-bar span { display: block; height: 100%; background: var(--g); }
.dm-bar__label { margin: -.6rem 0 0; font-size: .8rem; color: var(--dm-muted); }

.dm-chart { margin: 0 0 3.5rem; padding: 0; border: 0; background: none; }
.dm-chart figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; margin-bottom: 2rem; font-size: 1.15rem; color: var(--dm-navy); }
.dm-legend { display: flex; gap: 1.2rem; font-size: .85rem; }
.dm-legend i { font-style: normal; color: var(--dm-muted); display: inline-flex; align-items: center; gap: .4rem; }
.dm-legend i::before { content: ""; width: 12px; height: 3px; background: var(--g); }
.dm-chart__bars {
	display: grid;
	grid-template-columns: repeat(10, 1fr);
	gap: clamp(4px, 1.6vw, 18px);
	height: 280px;
	align-items: end;
	border-bottom: 2px solid var(--dm-navy);
}
.dm-chart__col { height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; position: relative; }
.dm-chart__stack { width: 100%; max-width: 52px; height: calc(100% - 2.4rem); display: flex; flex-direction: column-reverse; }
.dm-chart__stack span { display: block; background: var(--g); border-top: 2px solid #fff; transform-origin: bottom; transition: transform 1s var(--dm-ease); }
.deet-js .dm-chart:not(.is-in) .dm-chart__stack span { transform: scaleY(0); }
.dm-chart__val { font-weight: 300; font-size: 1.15rem; color: var(--dm-navy); margin-bottom: .3rem; order: -1; }
.dm-chart__year { position: absolute; bottom: -1.7rem; font-size: .78rem; color: var(--dm-muted); }
.dm-chart__note { margin: 3rem 0 0; font-size: .82rem; color: var(--dm-muted); }

.dm-top h3 { font-size: 1.4rem !important; margin: 0 0 .5rem !important; padding-bottom: 1rem; border-bottom: 2px solid var(--dm-navy); }
.dm-top ol { list-style: none; margin: 0; padding: 0; }
.dm-top li {
	display: grid;
	grid-template-columns: 6rem 1fr;
	gap: 1.5rem;
	align-items: baseline;
	padding: 1.1rem 0;
	border-bottom: 1px solid var(--dm-line);
}
.dm-top__cites { font-size: 2rem; font-weight: 300; color: var(--dm-red); line-height: 1; text-align: right; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.dm-top__cites small { display: block; font-size: .7rem; font-weight: 400; letter-spacing: 0; color: var(--dm-muted); margin-top: .25rem; }
.dm-top__body a { color: var(--dm-navy); font-weight: 600; }
.dm-top__body em { display: block; font-style: normal; color: var(--dm-muted); font-size: .86rem; margin-top: .25rem; }

@media (max-width: 900px) {
	.dm-kpi-band { grid-template-columns: repeat(2, 1fr); row-gap: 1.6rem; }
	.dm-kpi-band > div:nth-child(odd) { border-left: 0; padding-left: 0; }
	.dm-groups { grid-template-columns: 1fr; }
	.dm-group h3 { min-height: 0; }
}
@media (max-width: 600px) {
	.dm-chart__bars { height: 200px; }
	.dm-chart__val { font-size: .75rem; }
	.dm-chart__year { font-size: .58rem; }
	.dm-top li { grid-template-columns: 3.8rem 1fr; gap: .9rem; }
	.dm-top__cites { font-size: 1.4rem; }
	.dm-tabs { gap: 1.4rem; }
	.dm-group__kpis { grid-template-columns: repeat(2, 1fr); row-gap: .8rem; }
	.dm-group__kpis > div:nth-child(3) { border-left: 0; padding-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.dm-panel:not([hidden]), .dm-chart__stack span { animation: none; transition: none; transform: none; }
}

/* Grupos adicionales y miembros sin ORCID */
.dm-card__group--extra { opacity: .85; }
.dm-pending {
	margin: 0;
	padding: .9rem 0;
	border-top: 1px solid var(--dm-line);
	border-bottom: 1px solid var(--dm-line);
	font-size: .9rem;
	color: var(--dm-muted);
}

/* ===================== Métricas ampliadas ===================== */
.dm-block { margin: 0 0 3.5rem; }
.dm-block__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: .6rem 2rem; padding-bottom: .9rem; margin-bottom: 1.6rem; border-bottom: 2px solid var(--dm-navy); }
.dm-block__head h3 { margin: 0 !important; font-size: 1.4rem !important; color: var(--dm-navy); }
.dm-block__head p { margin: 0; max-width: 36rem; font-size: .92rem; color: var(--dm-muted); }
.dm-split { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
.dm-split > .dm-block { min-width: 0; }

/* Leyendas y llaves de color */
.dm-leg { list-style: none; margin: 0; padding: 0; }
.dm-leg li { display: grid; grid-template-columns: 12px 1fr auto; gap: .7rem; align-items: baseline; padding: .55rem 0; border-top: 1px solid var(--dm-line); font-size: .92rem; }
.dm-key { width: 12px; height: 12px; border-radius: 2px; background: var(--c); align-self: center; }
.dm-leg__name { color: #2a3646; }
.dm-leg__name em { font-style: normal; color: var(--dm-muted); font-size: .82rem; }
.dm-leg__val { font-weight: 600; color: var(--dm-navy); white-space: nowrap; }
.dm-leg__val small { font-weight: 400; color: var(--dm-muted); margin-left: .25rem; }
.dm-leg--compact li { padding: .4rem 0; font-size: .86rem; }

/* Dona */
.dm-donut-wrap { display: grid; grid-template-columns: minmax(150px, 210px) 1fr; gap: 2rem; align-items: center; }
.dm-donut { width: 100%; height: auto; overflow: visible; }
.dm-donut__seg { fill: none; stroke-width: 22; cursor: pointer; transition: stroke-width .25s, opacity .25s; }
.dm-donut:hover .dm-donut__seg { opacity: .55; }
.dm-donut .dm-donut__seg:hover, .dm-donut .dm-donut__seg:focus { opacity: 1; stroke-width: 27; outline: none; }
.dm-donut__n { text-anchor: middle; font-size: 26px; font-weight: 300; fill: var(--dm-navy); }
.dm-donut__l { text-anchor: middle; font-size: 10px; fill: var(--dm-muted); }

/* Acceso abierto */
.dm-hero-num { margin: 0 0 1rem; font-size: 3rem; font-weight: 300; line-height: 1; color: var(--dm-navy); letter-spacing: -.02em; }
.dm-hero-num span { display: block; margin-top: .4rem; font-size: .95rem; letter-spacing: 0; color: var(--dm-muted); }
.dm-stack { display: flex; gap: 2px; height: 28px; margin-bottom: 1rem; }
.dm-stack__seg { background: var(--c); min-width: 3px; cursor: pointer; transition: filter .2s; }
.dm-stack__seg:first-child { border-radius: 3px 0 0 3px; }
.dm-stack__seg:last-child { border-radius: 0 3px 3px 0; }
.dm-stack__seg:hover, .dm-stack__seg:focus { filter: brightness(1.12); outline: 2px solid var(--dm-navy); outline-offset: 1px; }

/* Barras horizontales */
.dm-bars { list-style: none; margin: 0; padding: 0; }
.dm-bars li { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) 2.6rem; gap: .9rem; align-items: center; padding: .5rem 0; border-top: 1px solid var(--dm-line); font-size: .88rem; cursor: default; }
.dm-bars__label { color: #2a3646; line-height: 1.3; }
.dm-bars__label em { font-style: normal; display: block; font-size: .76rem; color: var(--dm-muted); }
.dm-bars__track { height: 10px; background: transparent; }
.dm-bars__fill { display: block; height: 100%; width: var(--w); background: #3a6aae; border-radius: 0 3px 3px 0; transform-origin: left; transition: transform 1s var(--dm-ease), background .2s; }
.deet-js .dm-block:not(.is-in) .dm-bars__fill { transform: scaleX(0); }
.dm-bars li:hover .dm-bars__fill, .dm-bars li:focus .dm-bars__fill { background: var(--dm-navy); }
.dm-bars__val { text-align: right; font-weight: 600; color: var(--dm-navy); font-variant-numeric: tabular-nums; }

/* Mapa */
.dm-map-wrap { position: relative; }
.dm-map { display: block; width: 100%; height: auto; }
.dm-map__land path { fill: #e3e7ec; stroke: #fff; stroke-width: .5; }
.dm-map__land path.is-on { cursor: pointer; transition: filter .2s; }
.dm-map__land path.is-on:hover, .dm-map__land path.is-on:focus { filter: brightness(1.15); stroke: var(--dm-navy); stroke-width: 1; outline: none; }
.dm-arc { fill: none; stroke: #6f6f6f; stroke-opacity: .55; stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 0; pointer-events: none; }
.dm-arc-end { fill: #6f6f6f; fill-opacity: .8; pointer-events: none; }
.deet-js .dm-block:not(.is-in) .dm-arc { stroke-dashoffset: 100; }
.deet-js .dm-block:not(.is-in) .dm-arc-end { opacity: 0; }
.dm-arc { transition: stroke-dashoffset 1.6s var(--dm-ease) var(--d, 0ms); }
.dm-arc-end { transition: opacity .4s ease calc(var(--d, 0ms) + 1.2s); }
.dm-map__home circle { fill: #6f6f6f; stroke: #fff; stroke-width: 1.2; }
.dm-map__home .dm-home-pulse { fill: #6f6f6f; stroke: none; transform-origin: center; transform-box: fill-box; animation: dm-pulse 2.2s ease-out infinite; }
.dm-map__home text { font-size: 11px; font-weight: 700; fill: var(--dm-navy); paint-order: stroke; stroke: #fff; stroke-width: 3px; }
@keyframes dm-pulse { 0% { transform: scale(.6); opacity: .6; } 100% { transform: scale(3.2); opacity: 0; } }
.dm-map__land path.is-picked { stroke: var(--dm-navy); stroke-width: 1.6; filter: none; }
.dm-map__dots circle { fill: #0a56ae; fill-opacity: 1; stroke: #fff; stroke-width: 1.2; cursor: pointer; transition: r .2s; }
.dm-map__dots circle:hover, .dm-map__dots circle:focus { stroke: var(--dm-navy); stroke-width: 2; outline: none; }
.dm-map__land path, .dm-map__dots circle, .dm-map__home circle { vector-effect: non-scaling-stroke; }
.dm-map__home text { font-size: calc(11px / var(--z, 1)); stroke-width: calc(3px / var(--z, 1)); }
.dm-map-wrap.is-zoomed .dm-map { cursor: grab; touch-action: none; }
.dm-map-wrap.is-dragging .dm-map, .dm-map-wrap.is-dragging .dm-map * { cursor: grabbing; }
.dm-map-wrap { overflow: hidden; }

/* Zoom del mapa: controles discretos, a la manera de una carta impresa. */
.dp .dm-zoom, .dm-zoom { position: absolute; top: .4rem; left: 0; z-index: 2; display: flex; gap: 0; border: 1px solid var(--dm-line); background: #fff; }
.dm-zoom button, .dm-panel .dm-zoom button { all: unset; box-sizing: border-box; min-width: 2.1rem; height: 2.1rem; padding: 0 .7rem !important; margin: 0 !important; border-radius: 0 !important; box-shadow: none !important; border-top: 0 !important; border-right: 0 !important; border-bottom: 0 !important; font-family: inherit !important; display: inline-flex; align-items: center; justify-content: center; font-size: .82rem !important; font-weight: 500 !important; line-height: 1 !important; letter-spacing: .02em !important; text-transform: none !important; color: var(--dm-navy) !important; background: #fff !important; border-left: 1px solid var(--dm-line) !important; cursor: pointer; transition: background .2s, color .2s; }
.dm-zoom button:first-child { border-left: 0 !important; }
.dm-zoom button[data-zoom="in"], .dm-zoom button[data-zoom="out"] { font-size: 1.1rem !important; padding: 0 !important; }
.dm-zoom button:hover, .dm-zoom button:focus-visible { background: var(--dm-navy) !important; color: #fff !important; }
.dm-zoom button[hidden] { display: none !important; }
.dm-zoom button[data-zoom="reset"] { color: #6f6f6f !important; }
.dm-zoom__hint { position: absolute; top: .9rem; left: 15.5rem; margin: 0; font-size: .74rem; color: var(--dm-muted); pointer-events: none; transition: opacity .3s; }
.dm-map-wrap.is-zoomed .dm-zoom__hint { opacity: 0; }
@media (max-width: 640px) { .dm-zoom__hint { display: none; } }
.dm-map__dots circle.is-picked { fill: var(--dm-navy); fill-opacity: 1; stroke-width: 1.8; }

/* Panel de publicaciones por país (clic en el mapa). */
.dm-geo { margin-top: 1.4rem; border-top: 2px solid var(--dm-navy); padding-top: 1rem; }
.dm-geo:not([hidden]) { animation: dm-fade .45s var(--dm-ease); }
.dm-geo__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.dm-geo__title { margin: 0 !important; font-size: 1.15rem !important; color: var(--dm-navy); }
.dm-geo__close, .dm-geo__more { background: none; border: 1px solid var(--dm-line); padding: .35rem .8rem; font: inherit; font-size: .82rem; color: var(--dm-navy); cursor: pointer; }
.dm-geo__close:hover, .dm-geo__more:hover { border-color: var(--dm-navy); }
.dm-geo__note { margin: .4rem 0 .8rem; font-size: .82rem; color: var(--dm-muted); }
.dm-geo__list { list-style: none; margin: 0; padding: 0; counter-reset: geo; }
.dm-geo__item { counter-increment: geo; position: relative; padding: .7rem 0 .7rem 2.4rem; border-bottom: 1px solid var(--dm-line); }
.dm-geo__item::before { content: counter(geo, decimal-leading-zero); position: absolute; left: 0; top: .78rem; font-size: .78rem; font-weight: 600; color: var(--dm-muted); font-variant-numeric: tabular-nums; }
.dm-geo__t { font-weight: 600; color: var(--dm-navy); line-height: 1.35; }
a.dm-geo__t:hover { color: var(--dm-red); }
.dm-geo__meta { margin: .25rem 0 0; font-size: .82rem; color: var(--dm-muted); }
.dm-geo__meta strong { color: var(--dm-navy); font-weight: 600; }
.dm-geo__more { margin-top: 1rem; }

.dm-map-legend { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.4rem; margin-top: 1rem; font-size: .82rem; color: var(--dm-muted); }
.dm-map-legend ol { display: flex; list-style: none; margin: 0; padding: 0; }
.dm-map-legend li { padding: .3rem .55rem; background: var(--c); color: #fff; font-weight: 600; font-size: .76rem; }
.dm-map-legend li:first-child { color: var(--dm-navy); }
.dm-map-legend__home::before { content: ""; display: inline-block; width: 12px; height: 12px; border-radius: 2px; background: var(--c); margin-right: .45rem; vertical-align: -1px; }

/* Matriz entre grupos */
.dm-matrix { width: 100%; border-collapse: separate; border-spacing: 2px; table-layout: fixed; }
.dm-matrix thead th { font-size: .82rem; color: var(--g); font-weight: 700; padding: .3rem; text-align: center; background: none; }
.dm-matrix tbody th { text-align: left; font-size: .85rem; font-weight: 700; color: var(--g); padding: .4rem .6rem .4rem 0; background: none; width: 34%; }
.dm-matrix tbody th span { display: block; font-weight: 400; color: var(--dm-muted); font-size: .76rem; }
.dm-matrix td { height: 64px; text-align: center; background: var(--c, #e3e7ec); font-size: 1.15rem; font-weight: 300; color: var(--dm-navy); border: 0; cursor: default; transition: outline-color .2s; outline: 2px solid transparent; outline-offset: -2px; }
.dm-matrix td.is-dark { color: #fff; }
.dm-matrix td.is-self { background: #fff; box-shadow: inset 0 0 0 1px var(--dm-line); color: var(--dm-muted); font-size: .95rem; }
.dm-matrix td:hover, .dm-matrix td:focus { outline-color: var(--dm-navy); }
.dm-matrix__note { margin: .9rem 0 0; font-size: .8rem; color: var(--dm-muted); }
.dm-matrix thead td { background: none; height: auto; }

/* Tabla de datos accesible */
.dm-data { margin-top: 1rem; font-size: .85rem; }
.dm-data summary { cursor: pointer; color: var(--dm-muted); display: inline-block; }
.dm-data summary:hover { color: var(--dm-navy); }
.dm-data table { width: 100%; margin-top: .6rem; border-collapse: collapse; }
.dm-data caption { text-align: left; font-weight: 600; color: var(--dm-navy); padding-bottom: .4rem; }
body .dm-data th, body .dm-data td { background: none !important; color: #2a3646 !important; font-family: inherit !important; padding: .35rem .5rem !important; border-bottom: 1px solid var(--dm-line); text-align: left; font-weight: 400; }
body .dm-data thead th { font-weight: 600; color: var(--dm-muted) !important; }
.dm-data td { text-align: right !important; font-variant-numeric: tabular-nums; }

/* Tooltip */
.dm-tip { position: fixed; z-index: 1000; pointer-events: none; max-width: 280px; padding: .5rem .7rem; background: var(--dm-navy, #002856); color: #fff; font-size: .82rem; line-height: 1.35; border-radius: 3px; box-shadow: 0 6px 18px rgba(0, 26, 58, .25); opacity: 0; transform: translateY(4px); transition: opacity .15s, transform .15s; }
.dm-tip.is-on { opacity: 1; transform: none; }

@media (max-width: 900px) {
	.dm-split { grid-template-columns: 1fr; gap: 0; }
	.dm-donut-wrap { grid-template-columns: 1fr; justify-items: center; }
	.dm-donut { max-width: 220px; }
	.dm-donut-wrap .dm-leg { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.dm-arc, .dm-arc-end, .dm-bars__fill { transition: none; }
	.dm-map__home .dm-home-pulse { animation: none; }
	.deet-js .dm-block:not(.is-in) .dm-arc { stroke-dashoffset: 0; }
	.deet-js .dm-block:not(.is-in) .dm-arc-end { opacity: 1; }
	.deet-js .dm-block:not(.is-in) .dm-bars__fill { transform: none; }
}
@media print {
	.deet-js .dm-block .dm-arc { stroke-dashoffset: 0 !important; }
	.deet-js .dm-block .dm-bars__fill { transform: none !important; }
}

/* Cuadros oficiales de los ODS (color ONU + número) */
.dm-bars li.has-badge { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) 2.6rem; }
.dm-bars li.has-badge .dm-bars__label { display: flex; align-items: center; gap: .75rem; }
.dm-sdg {
	flex: 0 0 auto;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	background: var(--sdg);
	color: #fff;
	font-weight: 800;
	font-size: 1.05rem;
	line-height: 1;
	border-radius: 3px;
	transition: transform .35s var(--dm-ease);
}
.dm-sdg small { font-size: .5rem; font-weight: 700; letter-spacing: .06em; margin-bottom: 2px; opacity: .9; }
.dm-bars li.has-badge:hover .dm-sdg, .dm-bars li.has-badge:focus .dm-sdg { transform: scale(1.08) rotate(-3deg); }
@media (max-width: 600px) {
	.dm-matrix tbody th { width: 30%; padding-right: .3rem; }
	.dm-matrix tbody th span { font-size: .68rem; overflow-wrap: anywhere; }
	.dm-matrix td { height: 52px; font-size: .95rem; }
}

/* =========================================================
   Pestaña Proyectos
   ========================================================= */
.dp { --dp-ease: cubic-bezier(.16, 1, .3, 1); }
.dp-kpis { margin-bottom: 3rem; }
.dp-kpis > div:nth-child(4) dd { color: var(--dm-navy); }
.dp-kpis > div:first-child dd { color: var(--dm-red); }

/* Cronograma */
.dp-tl__body { position: relative; padding: 2rem 0 1.8rem 17rem; }
.dp-tl__plot { position: relative; }
.dp-tl__axis { position: absolute; top: -2rem; bottom: 0; left: 0; right: 0; pointer-events: none; }
.dp-tl__tick { position: absolute; top: 0; bottom: 0; border-left: 1px dashed var(--dm-line); padding-left: .4rem; font-size: .76rem; color: var(--dm-muted); font-variant-numeric: tabular-nums; }
.dp-tl__rows { list-style: none; margin: 0; padding: 0; position: relative; }
.dp-tl__row { position: relative; display: block; height: 2.5rem; }
.dp-tl__label { position: absolute; right: calc(100% + 1.2rem); top: 50%; transform: translateY(-50%); width: 15.8rem; font-size: .84rem; line-height: 1.3; color: #2a3646 !important; text-decoration: none !important; text-align: right; }
.dp-tl__label b { color: var(--g); font-weight: 700; margin-right: .2rem; }
.dp-tl__label:hover { color: var(--dm-navy) !important; }
.dp-tl__track { position: absolute; inset: .7rem 0; }
.dp-tl__bar { position: absolute; top: 0; bottom: 0; border-radius: 3px; background: color-mix(in srgb, var(--g) 18%, #fff); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--g) 45%, #fff); overflow: hidden; transform-origin: left center; }
.dp-tl__done { position: absolute; inset: 0 auto 0 0; width: var(--p); background: var(--g); overflow: hidden; }
.dp-tl__done::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .35), transparent); transform: translateX(-100%); }
.dp-tl__today { position: absolute; top: -.5rem; bottom: 0; width: 0; border-left: 2px solid var(--dm-red); }
.dp-tl__today em { position: absolute; bottom: -1.5rem; left: -.9rem; font-style: normal; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--dm-red); background: #fff; padding: 0 .2rem; }
.dp-tl__row.is-hidden { display: none; }

/* Red de participación */
.dp-net__wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.dp-net__hint { display: none; margin: 0 0 .6rem; font-size: .8rem; color: var(--dm-muted); }
.dp-net__svg { display: block; width: 100%; min-width: 620px; height: auto; font-family: inherit; }
.dp-net__edge { fill: none; stroke-width: 1.6; opacity: .55; transition: opacity .25s, stroke-width .25s; }
.dp-net__edge.is-lead { stroke-width: 3.2; }
.dp-net__node text { font-size: 15px; fill: #2a3646; transition: fill .2s, opacity .25s; }
.dp-net__node a { text-decoration: none; }
.dp-net__node circle, .dp-net__node rect { stroke: #fff; stroke-width: 2; transition: transform .25s var(--dp-ease); transform-box: fill-box; transform-origin: center; }
.dp-net__code { font-weight: 700; fill: var(--dm-navy); }
.dp-net__ext { font-size: 12px !important; fill: var(--dm-muted) !important; }
.dp-net__node { cursor: pointer; outline: none; }
.dp-net__svg.is-focus .dp-net__edge { opacity: .08; }
.dp-net__svg.is-focus .dp-net__edge.is-on { opacity: 1; stroke-width: 3.4; }
.dp-net__svg.is-focus .dp-net__node text { opacity: .3; }
.dp-net__svg.is-focus .dp-net__node.is-on text { opacity: 1; fill: var(--dm-navy); font-weight: 600; }
.dp-net__node.is-on circle, .dp-net__node.is-on rect { transform: scale(1.35); }
.dp-net__node.is-pinned circle, .dp-net__node.is-pinned rect { transform: scale(1.6); stroke: var(--dm-navy); stroke-width: 2.5; }
.dp-net__node.is-pinned text { fill: var(--dm-navy) !important; font-weight: 700 !important; text-decoration: underline; text-decoration-color: #6f6f6f; text-underline-offset: 4px; }

/* Fichas */
.dp-list { margin-top: 1rem; border-top: 2px solid var(--dm-navy); }
.dp-card { --g: var(--dm-navy); display: grid; grid-template-columns: 12rem minmax(0, 1fr); gap: 3rem; padding: 2.6rem 0; border-bottom: 1px solid var(--dm-line); scroll-margin-top: 9rem; }
.dp-card.is-hidden { display: none; }
.dp-card.is-flash { animation: dp-flash 1.8s var(--dp-ease); }
@keyframes dp-flash { 0% { background: color-mix(in srgb, var(--g) 12%, transparent); } 100% { background: transparent; } }
.dp-card__side p { margin: 0; }
.dp-code { font-size: 2.6rem; font-weight: 300; line-height: 1; letter-spacing: -.03em; color: var(--g); font-variant-numeric: tabular-nums; }
.dp-card__side .deet-ico { display: block; width: 44px; height: 44px; margin: 1rem 0 .8rem; color: var(--g); }
.dp-card__side .deet-ico svg { width: 44px; height: 44px; }
.dp-status { display: inline-flex; align-items: center; gap: .45rem; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #1d7a46; }
.dp-status i { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.dp-status.is-activo i { animation: dp-live 2s ease-out infinite; }
.dp-status.is-finalizado { color: var(--dm-muted); }
@keyframes dp-live { 0% { box-shadow: 0 0 0 0 rgba(29, 122, 70, .45); } 100% { box-shadow: 0 0 0 9px rgba(29, 122, 70, 0); } }
.dp-dates { margin-top: .5rem !important; font-size: .95rem; color: var(--dm-navy); font-variant-numeric: tabular-nums; }
.dp-progress { position: relative; height: 6px; margin-top: .9rem; background: var(--dm-line); border-radius: 3px; overflow: hidden; }
.dp-progress span { position: absolute; inset: 0 auto 0 0; width: var(--p); background: var(--g); border-radius: 3px; }
.dp-progress__label { margin-top: .45rem !important; font-size: .78rem; color: var(--dm-muted); }

.dp-groups { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin: 0 0 .8rem; padding: 0; }
.dp-groups li { display: inline-flex; align-items: center; gap: .45rem; font-size: .78rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--g); }
.dp-groups li::before { content: ""; width: 10px; height: 10px; background: var(--g); border-radius: 2px; }
.dp-title { margin: 0 0 .6rem !important; font-size: clamp(1.25rem, 2.1vw, 1.65rem) !important; line-height: 1.22 !important; color: var(--dm-navy); text-wrap: pretty; }
.dp-call { margin: 0 0 1.6rem; font-size: .92rem; color: var(--dm-muted); }
.dp-cols { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 2.4rem; }
.dp-label { margin: 0 0 .6rem; font-size: .74rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--dm-muted); }
.dp-partners + .dp-label { margin-top: 1.4rem; }
.dp-team { list-style: none; margin: 0; padding: 0; }
.dp-team li { display: grid; grid-template-columns: 9.5rem minmax(0, 1fr); gap: .8rem; align-items: baseline; padding: .5rem 0; border-top: 1px solid var(--dm-line); font-size: .95rem; }
.dp-role { font-size: .8rem; color: var(--dm-muted); }
.dp-person { color: #2a3646; }
a.dp-person { display: inline-flex; align-items: center; gap: .45rem; color: var(--dm-navy) !important; font-weight: 600; text-decoration: none !important; background: linear-gradient(var(--g), var(--g)) 0 100% / 0 1px no-repeat; transition: background-size .35s var(--dp-ease); }
a.dp-person:hover { background-size: 100% 1px; }
a.dp-person i { width: 8px; height: 8px; border-radius: 50%; background: var(--g); flex: none; }
.dp-partners { list-style: none; margin: 0; padding: 0; font-size: .95rem; color: var(--dm-navy); font-weight: 600; }
.dp-kw { list-style: none; display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; padding: 0; }
.dp-kw li { padding: .25rem .6rem; border: 1px solid var(--dm-line); font-size: .78rem; color: #2a3646; }
.dp-desc { margin-top: 1.8rem; border-top: 1px solid var(--dm-line); }
.dp-desc summary { cursor: pointer; list-style: none; padding: .9rem 0 .2rem; font-weight: 600; font-size: .92rem; color: var(--dm-navy); }
.dp-desc summary::-webkit-details-marker { display: none; }
.dp-desc summary::after { content: " +"; color: var(--dm-red); font-weight: 700; }
.dp-desc[open] summary::after { content: " −"; }
.dp-desc p { max-width: 48rem; font-size: .95rem; line-height: 1.65; color: #2a3646; }
.dp-desc[open] p { animation: dm-fade .5s var(--dp-ease); }
.dp-more { margin: 1rem 0 0; font-size: .9rem; }
.dp-kw + .dp-label { margin-top: 1.4rem; }

/* Filtros de Proyectos: índice editorial (como las Líneas de investigación de la portada).
   Los !important anulan el estilo global de <button> del mu-plugin de marca. */
.dp .dp-seg__btn, .dp .dp-clear, .dp .dp-more-btn {
	text-transform: none !important;
	letter-spacing: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font-family: inherit !important;
}
.dp-toolbar { margin: 0 0 2.8rem; }

/* Grupos: cuatro columnas con regla superior; la activa toma el color del grupo */
.dp-seg--groups { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--dm-line); }
.dp .dp-ix {
	--g: var(--dm-navy);
	position: relative;
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-areas: "code count" "name count";
	align-items: end;
	gap: .15rem 1rem;
	padding: 1.1rem 1.4rem 1.1rem 0 !important;
	background: none !important;
	color: #2a3646 !important;
	border: 0 !important;
	text-align: left;
	font: 400 1rem/1.3 inherit !important;
	font-family: inherit !important;
	cursor: pointer;
}
.dp .dp-ix + .dp-ix { padding-left: 1.2rem !important; border-left: 1px solid var(--dm-line) !important; }
.dp-ix::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 3px; background: var(--g); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--dp-ease); }
.dp-ix:hover::before { transform: scaleX(.35); }
.dp-ix.is-active::before { transform: scaleX(1); }
.dp-ix__code { grid-area: code; font-size: .74rem; font-weight: 700; letter-spacing: .06em; color: var(--g); }
.dp-ix__name { grid-area: name; font-size: .98rem; font-weight: 400; line-height: 1.25; color: var(--dm-muted); transition: color .2s; }
.dp-ix .dp-count { grid-area: count; font-size: 2.3rem; font-weight: 300; line-height: .9; letter-spacing: -.03em; color: #b9c1cb; font-variant-numeric: tabular-nums; transition: color .25s; }
.dp-ix:hover .dp-ix__name, .dp-ix.is-active .dp-ix__name { color: var(--dm-navy); }
.dp .dp-ix.is-active .dp-ix__name { font-weight: 600; }
.dp-ix.is-active .dp-count { color: var(--g); }
.dp-ix.is-empty .dp-ix__name { color: #b9c1cb; }
.dp-ix:focus-visible { outline: 2px solid var(--g); outline-offset: -2px; }

/* Estado y resultado: una línea de texto, subrayado como las pestañas */
.dp-toolbar__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .6rem 2rem; padding-top: .9rem; }
.dp-seg--status { display: flex; flex-wrap: wrap; gap: 1.4rem; }
.dp .dp-st { padding: .2rem 0 !important; background: none !important; border: 0 !important; color: var(--dm-muted) !important; font: 500 .92rem/1.4 inherit !important; cursor: pointer; background-image: linear-gradient(var(--dm-red), var(--dm-red)) !important; background-repeat: no-repeat !important; background-position: 0 100% !important; background-size: 0 2px !important; transition: background-size .35s var(--dp-ease), color .2s; }
.dp .dp-st:hover { color: var(--dm-navy) !important; }
.dp .dp-st.is-active { color: var(--dm-navy) !important; font-weight: 600 !important; background-size: 100% 2px !important; }
.dp-st .dp-count { margin-left: .15rem; font-weight: 300; color: inherit; font-variant-numeric: tabular-nums; }
.dp-st.is-empty:not(.is-active) { color: #b9c1cb !important; }
.dp-result { margin: 0; font-size: .92rem; color: var(--dm-navy); }
.dp-result__text { font-style: italic; }
.dp .dp-clear, .dp .dp-clear:hover { margin-left: .8rem; padding: 0 !important; background: none !important; border: 0 !important; color: var(--dm-red) !important; font: 600 .88rem/1.3 inherit !important; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.dp .dp-more-btn { background: none !important; color: var(--dm-navy) !important; padding: .9rem !important; font: 600 .95rem/1.3 inherit !important; }
.dp .dp-more-btn:hover { background: var(--dm-paper) !important; }

.dp-groups li[data-group] { cursor: pointer; }
.dp-groups li[data-group]:hover { text-decoration: underline; text-underline-offset: 3px; }
.dp-net__node { transition: transform .55s var(--dp-ease); }
.dp-net__edge { transition: d .55s var(--dp-ease), opacity .25s, stroke-width .25s; }
@media (max-width: 900px) {
	.dp-seg--groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dp .dp-ix:nth-child(odd) { padding-left: 0 !important; border-left: 0 !important; }
	.dp .dp-ix:nth-child(n+3) { border-top: 1px solid var(--dm-line) !important; }
	.dp-ix .dp-count { font-size: 1.8rem; }
}

/* Muchos proyectos: secciones, "Ver más" y equipos plegados */
.dp-section { margin-top: 2.6rem; }
.dp-section.is-hidden { display: none; }
.dp-section__title { display: flex; align-items: baseline; gap: .6rem; margin: 0 0 .2rem !important; font-size: 1.4rem !important; color: var(--dm-navy); }
.dp-section__title span { font-size: .95rem; font-weight: 400; color: var(--dm-muted); }
.dp-section .dp-list { margin-top: .8rem; }
.dp-card.is-more { display: none; }
.dp.is-expanded .dp-card.is-more { display: grid; }
.dp.is-expanded .dp-card.is-more.is-hidden, .dp-card.is-hidden { display: none; }
.dp.is-expanded .dp-more-btn { display: none; }
.dp-more-btn { display: block; width: 100%; margin-top: 1.2rem; padding: .9rem; background: none; border: 1px solid var(--dm-line); font: inherit; font-weight: 600; color: var(--dm-navy); cursor: pointer; transition: border-color .2s, background .2s; }
.dp-more-btn:hover { border-color: var(--dm-navy); background: var(--dm-paper); }
.dp-card.is-finalizado .dp-progress span { background: color-mix(in srgb, var(--g) 55%, #fff); }
.dp-card.is-finalizado .dp-code { opacity: .75; }
.dp-team-more summary { cursor: pointer; padding: .6rem 0 .2rem; font-size: .85rem; font-weight: 600; color: var(--dm-navy); list-style: none; }
.dp-team-more summary::-webkit-details-marker { display: none; }
.dp-team-more summary::after { content: " +"; color: var(--dm-red); }
.dp-team-more[open] summary::after { content: " −"; }
.dp-tl__row[data-status="finalizado"] .dp-tl__done { background: color-mix(in srgb, var(--g) 60%, #fff); }
.dp-tl__row[data-status="finalizado"] .dp-tl__bar { box-shadow: none; }
@media (max-width: 900px) {
	.dp-filters { align-items: flex-start; }
}
.dp-themes { list-style: none; display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; padding: 0; }
.dp-themes li { display: inline-flex; align-items: center; gap: .4rem; padding: .25rem .6rem .25rem .4rem; border: 1px solid var(--dm-line); font-size: .78rem; color: #2a3646; }
.dp-themes i { width: 13px; height: 13px; border-radius: 50%; background: conic-gradient(var(--g) calc(var(--w) * 1%), var(--dm-line) 0); -webkit-mask: radial-gradient(circle, transparent 3.5px, #000 4px); mask: radial-gradient(circle, transparent 3.5px, #000 4px); flex: none; }
.dp-themes li:first-child { border-color: var(--g); font-weight: 600; color: var(--dm-navy); }

/* Entrada animada (solo con JS; sin JS todo se ve completo) */
@media (prefers-reduced-motion: no-preference) {
	.js-dm .dp-tl .dp-tl__bar { transform: scaleX(0); transition: transform 1.1s var(--dp-ease) var(--d, 0ms); }
	.js-dm .dp-tl.is-in .dp-tl__bar { transform: scaleX(1); }
	.js-dm .dp-tl.is-in .dp-tl__done::after { animation: dp-sheen 2.4s ease-in-out 1.4s 1 both; }
	.js-dm .dp-tl .dp-tl__today { opacity: 0; transition: opacity .6s 1s; }
	.js-dm .dp-tl.is-in .dp-tl__today { opacity: 1; }
	.js-dm .dp-net .dp-net__edge { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 1.3s var(--dp-ease) var(--d, 0ms), d .55s var(--dp-ease), opacity .25s, stroke-width .25s; }
	.js-dm .dp-net.is-in .dp-net__edge { stroke-dashoffset: 0; }
	.js-dm .dp-card .dp-progress span { width: 0; transition: width 1.4s var(--dp-ease) .3s; }
	.js-dm .dp-card.is-in .dp-progress span { width: var(--p); }
}
@keyframes dp-sheen { to { transform: translateX(100%); } }

@media (max-width: 900px) {
	.dp-tl__body { padding-left: 0; padding-top: 2rem; }
	.dp-tl__row { height: auto; padding: .2rem 0 .9rem; }
	.dp-tl__label { position: static; transform: none; width: auto; display: block; text-align: left; margin-bottom: .35rem; }
	.dp-tl__track { position: relative; inset: auto; height: 1.2rem; }
	.dp-card { grid-template-columns: 1fr; gap: 1.2rem; }
	.dp-card__side { display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: .3rem 1rem; }
	.dp-card__side .deet-ico { margin: 0; width: 36px; height: 36px; }
	.dp-card__side .deet-ico svg { width: 36px; height: 36px; }
	.dp-dates, .dp-progress, .dp-progress__label { grid-column: 1 / -1; }
	.dp-cols { grid-template-columns: 1fr; gap: 1.6rem; }
}
@media (max-width: 600px) {
	.dp-team li { grid-template-columns: 1fr; gap: .1rem; }
	.dp-net__hint { display: block; }
	.dp-net__svg { min-width: 760px; }
}
@media print {
	.dp-tl__bar { transform: none !important; }
	.dp-net__edge { stroke-dashoffset: 0 !important; }
}

/* Pictogramas de proyecto: el trazo se dibuja al aparecer la ficha; al pasar el mouse, un gesto mínimo. */
.dp-pico .ico-ray { transform-origin: 17px 17px; transition: transform .8s var(--dp-ease); }
.dp-card:hover .dp-pico .ico-ray { transform: rotate(45deg); }
.dp-pico .ico-plan { stroke-dasharray: 2.5 3; }
.dp-card:hover .dp-pico .ico-plan { animation: dp-flow .8s linear infinite; }
.dp-pico .ico-leaf { transform-origin: 29px 41px; }
.dp-card:hover .dp-pico .ico-leaf { animation: dp-sway 2.4s ease-in-out infinite; }
.dp-card:hover .dp-pico--agua .ico-vib { animation: dp-vib .9s linear infinite; }
.dp-card:hover .dp-pico .ico-grip { animation: dp-grip 1.4s ease-in-out infinite; transform-origin: 36px 27px; }
@keyframes dp-sway { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(-6deg); } }
@keyframes dp-vib { from { transform: translateX(0); } to { transform: translateX(-6px); } }
@keyframes dp-grip { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(.55); } }
@keyframes dp-flow { to { stroke-dashoffset: -11; } }
@media (prefers-reduced-motion: reduce) { .dp-pico * { animation: none !important; transition: none !important; } }

/* Cronograma: los finalizados en filas finas, sin nombre (aparece en el tooltip).
   Al filtrar «Finalizados» recuperan tamaño y nombre. */
.dp-tl__sep { position: relative; height: 2.2rem; margin-top: .4rem; border-top: 1px solid var(--dm-line); }
.dp-tl__sep span { position: absolute; right: calc(100% + 1.2rem); top: .7rem; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--dm-muted); white-space: nowrap; }
.dp-tl__sep em { position: absolute; left: 0; top: .7rem; font-style: normal; font-size: .76rem; color: var(--dm-muted); }
.dp-tl__row.is-compact { height: .95rem; }
.dp-tl__row.is-compact .dp-tl__track { inset: .2rem 0; }
.dp-tl__row.is-compact .dp-tl__bar { border-radius: 2px; }
.dp-tl__row.is-compact .dp-tl__label { position: absolute !important; width: 1px !important; height: 1px; overflow: hidden; clip-path: inset(50%); }
.dp-tl__row.is-compact:hover .dp-tl__done, .dp-tl__row.is-compact .dp-tl__bar:focus .dp-tl__done { background: var(--g); }
[data-st="activo"] .dp-tl__sep, [data-st="finalizado"] .dp-tl__sep { display: none; }
[data-st="finalizado"] .dp-tl__row.is-compact { height: 2.5rem; }
[data-st="finalizado"] .dp-tl__row.is-compact .dp-tl__track { inset: .7rem 0; }
[data-st="finalizado"] .dp-tl__row.is-compact .dp-tl__label { width: 15.8rem !important; height: auto; overflow: visible; clip-path: none; }
@media (max-width: 760px) {
	.dp-tl__sep span { position: static; display: block; padding-top: .7rem; }
	.dp-tl__sep em { display: none; }
	.dp-tl__row.is-compact { padding: .15rem 0; }
	.dp-tl__row.is-compact .dp-tl__track { height: .55rem; }
	[data-st="finalizado"] .dp-tl__row.is-compact { height: auto; }
	[data-st="finalizado"] .dp-tl__row.is-compact .dp-tl__label { width: auto !important; }
	[data-st="finalizado"] .dp-tl__row.is-compact .dp-tl__track { height: 1.2rem; inset: auto; }
}

/* Red en el celular: vista centrada en una persona */
.dp-ego { display: none; }
@media (max-width: 700px) {
	.has-ego .dp-net__wrap, .has-ego .dp-net__hint { display: none; }
	.dp-ego { display: block; }
	.dp-ego[hidden] { display: none; }
}
.dp-ego__lead { margin: 0 0 .4rem; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--dm-muted); }
.dp-ego__chips { display: flex; gap: 0; overflow-x: auto; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; scrollbar-width: none; border-bottom: 1px solid var(--dm-line); mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent 100%); }
.dp-ego__chips::-webkit-scrollbar { display: none; }
.dp .dp-ego__chip { all: unset; flex: 0 0 auto; scroll-snap-align: start; display: inline-flex; align-items: baseline; gap: .4rem; padding: .7rem 1.1rem .6rem 0 !important; margin: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: none !important; border: 0 !important; font-family: inherit !important; font-size: .88rem !important; font-weight: 400 !important; text-transform: none !important; letter-spacing: 0 !important; color: #2a3646 !important; cursor: pointer; background-image: linear-gradient(var(--g), var(--g)) !important; background-repeat: no-repeat !important; background-position: 0 100% !important; background-size: 0 3px !important; transition: background-size .35s cubic-bezier(.16, 1, .3, 1), color .2s; white-space: nowrap; }
.dp .dp-ego__chip i { font-style: normal; font-size: .76rem; color: var(--dm-muted); font-variant-numeric: tabular-nums; }
.dp .dp-ego__chip.is-active { background-size: 100% 3px !important; color: var(--dm-navy) !important; font-weight: 600 !important; }
.dp .dp-ego__chip.is-active i { color: var(--g); }
.dp .dp-ego__chip:focus-visible { outline: 2px solid var(--dm-navy); outline-offset: -2px; }
.dp-ego__stage { margin: .6rem -8px 0; }
.dp-ego__svg { display: block; width: 100%; height: auto; overflow: visible; font-family: inherit; }
.dp-ego__line { fill: none; stroke-width: 1.8; stroke-linecap: round; opacity: .75; }
.dp-ego__line.is-lead { stroke-width: 3.6; opacity: 1; }
.dp-ego__line--co { stroke-width: 1; opacity: .4; stroke-dasharray: 2 3; }
.dp-ego__node { transform-box: fill-box; transform-origin: center; }
.dp-ego__me circle { stroke: #fff; stroke-width: 3; }
.dp-ego__me text { font-size: 15px; font-weight: 700; fill: #fff; letter-spacing: .02em; }
.dp-ego__pulse { opacity: 0; transform-box: fill-box; transform-origin: center; pointer-events: none; }
.dp-ego__proj rect { stroke: #fff; stroke-width: 2; }
.dp-ego__proj text { font-size: 12px; font-weight: 700; fill: #fff; font-variant-numeric: tabular-nums; pointer-events: none; }
.dp-ego__co { cursor: pointer; outline: none; pointer-events: bounding-box; -webkit-tap-highlight-color: transparent; }
.dp-ego__co circle:not(.dp-ego__hit) { stroke: #fff; stroke-width: 2; transition: r .2s; }
.dp-ego__co text { font-size: 11px; font-weight: 600; fill: var(--dm-navy); paint-order: stroke; stroke: #fff; stroke-width: 3px; stroke-linejoin: round; }
.dp-ego__co .dp-ego__sur { font-weight: 400; fill: #4a5666; }
.dp-ego__co:focus-visible circle:not(.dp-ego__hit), .dp-ego__co:active circle:not(.dp-ego__hit) { r: 9; }
.dp-ego__name { margin: .4rem 0 0; font-size: 1.35rem; font-weight: 700; line-height: 1.2; color: var(--dm-navy); }
.dp-ego__meta { margin: .15rem 0 .9rem; font-size: .84rem; color: var(--dm-muted); }
.dp-ego__list { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--dm-navy); }
.dp-ego__list li { border-bottom: 1px solid var(--dm-line); }
.dp-ego__list a { display: block; padding: .7rem 0; font-size: .9rem; line-height: 1.4; color: #2a3646 !important; text-decoration: none !important; }
.dp-ego__list b { color: var(--g); margin-right: .25rem; }
.dp-ego__list em { display: inline-block; margin-left: .4rem; font-style: normal; font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--dm-red); }
.dp-ego__hint { margin: .8rem 0 0; font-size: .78rem; color: var(--dm-muted); }
.dp-ego__list.is-clipped li:nth-child(n+6) { display: none; }
.dp .dp-ego__more { all: unset; display: inline-block; margin-top: .8rem; padding: .3rem 0 !important; background: none !important; border: 0 !important; border-bottom: 2px solid var(--dm-red) !important; border-radius: 0 !important; box-shadow: none !important; font-family: inherit !important; font-size: .88rem !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--dm-navy) !important; cursor: pointer; }
.dp .dp-ego__more[hidden] { display: none !important; }

/* Selector de fuente de las métricas */
.dm-src[hidden] { display: none !important; }
.dm-head__side { display: flex; flex-direction: column; align-items: flex-end; gap: .7rem; max-width: 30rem; }
.dm-head__side .dm-head__note { margin: 0; }
.dm-srcswitch { display: flex; align-items: baseline; flex-wrap: wrap; gap: .3rem 1.2rem; }
.dm-srcswitch__label { font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--dm-muted); }
.dm-srcswitch .dm-srcswitch__btn { all: unset; padding: .2rem 0 !important; margin: 0 !important; background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; font-family: inherit !important; font-size: .92rem !important; font-weight: 500 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--dm-muted) !important; cursor: pointer; background-image: linear-gradient(var(--dm-navy), var(--dm-navy)) !important; background-repeat: no-repeat !important; background-position: 0 100% !important; background-size: 0 2px !important; transition: background-size .35s cubic-bezier(.16, 1, .3, 1), color .2s; }
.dm-srcswitch .dm-srcswitch__btn:hover { color: var(--dm-navy) !important; }
.dm-srcswitch .dm-srcswitch__btn.is-active { color: var(--dm-navy) !important; font-weight: 700 !important; background-size: 100% 2px !important; }
.dm-srcswitch .dm-srcswitch__btn:focus-visible { outline: 2px solid var(--dm-navy); outline-offset: 3px; }
.dm-members .dm-head .dm-srcswitch { flex-basis: 100%; justify-content: flex-end; }
@media (max-width: 700px) {
	.dm-head__side { align-items: flex-start; }
	.dm-members .dm-head .dm-srcswitch { justify-content: flex-start; }
}
