.knowledge-map{width:88%;max-width:1100px;margin:auto;padding:64px 0 105px;color:#142b40}
.knowledge-map-intro{max-width:none;margin:0 0 58px}.knowledge-map-intro h1{font-family:var(--title);font-size:clamp(42px,5.5vw,72px);letter-spacing:-2.5px;line-height:1.12;margin:0 0 22px}.knowledge-map-intro p{font-size:20px;line-height:1.65;margin:0 0 22px}.knowledge-map-intro a{font-size:14px;color:#60717c;text-decoration:underline;text-decoration-color:#b9cbd0;text-underline-offset:5px}.knowledge-map-intro a:hover{text-decoration-color:currentColor}
.knowledge-map-explorer{border:1px solid #dce8ec;border-radius:28px;overflow:hidden;background:linear-gradient(120deg,#f6fcfe,#fffef5)}.knowledge-map-controls{display:flex;align-items:end;flex-wrap:wrap;gap:16px;padding:22px;border-bottom:1px solid #dce8ec}.map-axis-switch,.map-view-switch{display:flex;gap:4px;padding:4px;border-radius:99px;background:#e9f1f4}.map-axis-switch button,.map-view-switch button{border:0;border-radius:99px;background:transparent;padding:10px 15px;font:inherit;font-size:13px;color:#142b40;cursor:pointer}.map-axis-switch button[aria-pressed=true],.map-view-switch button[aria-pressed=true]{background:white;box-shadow:0 1px 5px #142b4018}.map-search-label{display:flex;flex-direction:column;gap:6px;min-width:190px;flex:1;font-size:12px;font-weight:650;color:#60717c}.map-search-label input{width:100%;min-width:0;box-sizing:border-box;padding:11px 13px;border:1px solid #cfdee4;border-radius:12px;background:white;color:#142b40;font:inherit;font-size:14px}.map-view-switch{margin-left:auto}.map-active-filter{padding:12px 22px;border-bottom:1px solid #dce8ec;font-size:13px}.map-active-filter[hidden]{display:none}.map-active-filter button{border:0;background:none;color:#60717c;text-decoration:underline;cursor:pointer;margin-left:12px;font:inherit}
.knowledge-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;min-height:650px}.knowledge-map-surface{min-width:0;background:#fff}.knowledge-map-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #e3ebee;font-size:12px;color:#60717c}.map-zoom{display:flex;align-items:center;gap:5px}.map-zoom button{min-width:32px;height:32px;border:1px solid #d1e0e5;border-radius:9px;background:white;color:#142b40;cursor:pointer;font:inherit}.map-zoom button:hover{background:#eaf8fb}.map-zoom button:last-child{padding:0 10px}.map-zoom[hidden]{display:none}
#map-graph-stage{height:610px;overflow:hidden;touch-action:none;cursor:grab}#map-graph-stage.dragging{cursor:grabbing}#map-graph{display:block;width:100%;height:100%}#map-edges line{stroke:#a9bdc4;stroke-opacity:.42;stroke-width:1.2}#map-edges line.membership{stroke:#c7d8dc;stroke-opacity:.32}#map-edges line.active{stroke:#18788a;stroke-opacity:.9;stroke-width:2.4}#map-edges line.dim{stroke-opacity:.08}#map-nodes .node{cursor:pointer}#map-nodes .node circle{fill:#fff;stroke:#476979;stroke-width:2}#map-nodes .node.topic circle{fill:#d8f3f7;stroke:#29798a;stroke-width:2.5}#map-nodes .node.person circle{fill:#e5f4fb}#map-nodes .node.project circle{fill:#fff5c4}#map-nodes .node.both circle{fill:url(#map-gradient)}#map-nodes .node.active circle{stroke:#142b40;stroke-width:4}#map-nodes .node.dim{opacity:.2}#map-nodes text{font-family:var(--title);fill:#142b40;font-size:19px;font-weight:750;pointer-events:none}#map-nodes .topic text{font-size:16px}#map-nodes .node-label{font-size:14px;font-weight:600;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}#map-nodes .node:focus-visible{outline:none}#map-nodes .node:focus-visible circle{stroke:#0b8094;stroke-width:4}
.map-legend{display:flex;flex-wrap:wrap;gap:8px 20px;margin:0;padding:13px 16px;border-top:1px solid #e3ebee;color:#60717c;font-size:12px}.map-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}.map-legend-topic{background:#7bcbd5}.map-legend-note{background:#ffe58e}.map-instructions{font-size:12px;line-height:1.5;color:#60717c;margin:0;padding:0 16px 16px}
.knowledge-map-detail{padding:25px;border-left:1px solid #dce8ec;background:linear-gradient(145deg,#f4fbfd,#fffdf0)}.knowledge-map-detail .detail-eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#60717c;font-weight:750}.knowledge-map-detail h2{font-family:var(--title);font-size:25px;line-height:1.25;margin:12px 0}.knowledge-map-detail p{font-size:14px;line-height:1.65}.knowledge-map-detail a{color:#142b40}.knowledge-map-detail .detail-primary{display:inline-block;background:#142b40;color:white;border-radius:99px;padding:12px 18px;text-decoration:none;font-size:13px;font-weight:700;margin-top:10px}.knowledge-map-detail .detail-primary:hover{background:#28516a}.knowledge-map-detail .detail-route{display:block;padding:9px 0;border-bottom:1px solid #dce8ec;font-size:13px;text-underline-offset:4px}.knowledge-map-detail .detail-route:hover{text-decoration:underline}.knowledge-map-detail .detail-related{margin-top:28px}.knowledge-map-detail .detail-related button{display:block;border:0;background:none;text-align:left;color:#526977;text-decoration:underline;text-underline-offset:4px;font:inherit;font-size:13px;padding:6px 0;cursor:pointer}
@media(max-width:900px){.knowledge-map-layout{grid-template-columns:1fr}.knowledge-map-detail{border-left:0;border-top:1px solid #dce8ec}.knowledge-map-controls{gap:12px}.map-view-switch{margin-left:0}}
@media(max-width:600px){.knowledge-map{padding:38px 0 70px}.knowledge-map-intro{margin-bottom:35px}.knowledge-map-intro p{font-size:17px}.knowledge-map-controls{padding:16px}.map-axis-switch{width:100%}.map-axis-switch button{flex:1}.map-search-label{flex:1 1 100%}.knowledge-map-layout{min-height:0}#map-graph-stage{height:480px}.map-instructions{padding-bottom:20px}}
@media(prefers-reduced-motion:reduce){#map-graph-stage{scroll-behavior:auto}}
/* El nombre de cada nota aparece al interactuar: el mapa completo sigue legible. */
#map-nodes .node-label{opacity:0;transition:opacity .14s}
#map-nodes .node:hover .node-label,#map-nodes .node.active .node-label,#map-nodes .node:focus-visible .node-label{opacity:1}
.knowledge-map-detail h2{letter-spacing:-.025em;overflow-wrap:anywhere}

.map-intro-links{display:flex;gap:20px;flex-wrap:wrap}

/* El grafo empieza abierto; la ficha aparece al elegir una pelota. */
.knowledge-map-layout{grid-template-columns:minmax(0,1fr)}
.knowledge-map-layout.has-selection{grid-template-columns:minmax(0,1fr) 300px}
.knowledge-map-detail{display:none}
.knowledge-map-layout.has-selection .knowledge-map-detail{display:block;animation:map-detail-enter .22s ease-out}
#map-graph-stage{user-select:none;-webkit-user-select:none}
#map-nodes .node{user-select:none;-webkit-user-select:none}
#map-nodes .node:focus{outline:none}
#map-nodes .node:focus-visible circle{stroke:#142b40}
@keyframes map-detail-enter{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:900px){.knowledge-map-layout.has-selection{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.knowledge-map-layout.has-selection .knowledge-map-detail{animation:none}}

/* La leyenda conserva los colores y tamaños de los nodos del grafo. */
.map-legend{align-items:center}
.map-legend span{display:inline-flex;align-items:center;gap:6px}
.map-legend .map-legend-kind{font-weight:700;color:#526977}
.map-legend i{flex:none;margin:0;border:1px solid #476979}
.map-legend .map-legend-topic{width:15px;height:15px;background:#d8f3f7;border-color:#29798a}
.map-legend .map-legend-project{background:#fff5c4}
.map-legend .map-legend-person{background:#e5f4fb}
.map-legend .map-legend-both{background:linear-gradient(90deg,#bdeafa,#fff0a6)}

/* Camino vertical junto al grafo: cada ruta abre sus lecturas en orden. */
.knowledge-map-layout.has-selection{grid-template-columns:minmax(0,1fr) 330px}
.knowledge-map-detail{max-height:760px;overflow-y:auto;box-sizing:border-box}
.map-routes-intro{color:#526977;margin-bottom:20px}
.map-route-group{margin:24px 0 0}
.map-route-group h3{font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin:0 0 14px;color:#526977}
.map-route-group>ol,.map-route-steps{list-style:none;margin:0;padding:0}
.map-route-item{position:relative}
.map-route-item:not(:last-child)::before{content:'';position:absolute;left:16px;top:35px;bottom:-8px;border-left:1px solid #bed0d7}
.map-route-choice{position:relative;z-index:1;display:flex;align-items:center;gap:11px;width:100%;padding:8px 5px;border:0;border-radius:13px;background:transparent;text-align:left;color:#142b40;font:inherit;font-size:13px;line-height:1.35;cursor:pointer}
.map-route-choice:hover .map-route-name{text-decoration:underline;text-underline-offset:4px}
.map-route-choice:focus-visible,.map-route-steps button:focus-visible{outline:2px solid #18788a;outline-offset:2px}
.map-route-number{flex:0 0 30px;display:grid;place-items:center;width:30px;height:30px;border:1px dashed #91a8b2;border-radius:50%;background:#fff;font-weight:700;font-size:12px}
.map-route-item.is-current>.map-route-choice{background:linear-gradient(110deg,#ecfaff,#fff9d7)}
.map-route-item.is-current>.map-route-choice .map-route-number{border-style:solid;border-color:#18788a;background:#18788a;color:#fff}
.map-route-steps{margin:1px 0 12px 45px;padding:4px 0 4px 12px;border-left:1px solid #b8d8df}
.map-route-steps button{display:flex;align-items:flex-start;gap:8px;width:100%;padding:7px 4px;border:0;border-radius:8px;background:transparent;color:#526977;text-align:left;font:inherit;font-size:12px;line-height:1.4;cursor:pointer}
.map-route-steps button:hover,.map-route-steps button[aria-pressed=true]{background:#edf8fa;color:#142b40}
.map-route-steps small{flex:none;min-width:16px;font-weight:750;font-size:11px;color:#18788a}
.map-route-picked{padding:14px;border:1px solid #dce8ec;border-radius:14px;background:#fff;margin:16px 0 24px}
.map-route-picked h3{font-size:16px;line-height:1.3;margin:9px 0}
.map-route-picked p{font-size:12px;line-height:1.55;margin:0 0 10px}
.map-route-picked a{font-size:12px;font-weight:700;text-decoration:none}
.map-route-picked a:hover{text-decoration:underline;text-underline-offset:4px}
#map-nodes .node.route-member circle{stroke:#126e80;stroke-width:3;filter:drop-shadow(0 0 4px #78c8d5)}
#map-nodes .node.route-member.project circle{fill:#ffe79d}
#map-nodes .node.route-member.person circle{fill:#bbebf5}
#map-edges line.route-active{stroke:#178299;stroke-opacity:.95;stroke-width:2.8}
#map-edges line.active{stroke:#142b40;stroke-opacity:1;stroke-width:3.2}
#map-nodes .node.active circle{stroke:#142b40;stroke-width:4;filter:drop-shadow(0 0 5px #142b4050)}
@media(max-width:900px){.knowledge-map-layout.has-selection{grid-template-columns:1fr}.knowledge-map-detail{max-height:520px}}

/* El campo explica la búsqueda sin ocupar una segunda línea de controles. */
.map-search-label{position:relative;display:block;align-self:center}
.map-search-icon{position:absolute;left:14px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:#60717c;pointer-events:none}
.map-search-label input{padding-left:43px}
