/* Knowledge map: map on the left, insights / selection on the right. */
.km-page .page-head p{max-width:760px}
.km-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 12px}
.km-modes,.km-areas{display:flex;flex-wrap:wrap;gap:4px}
.km-area{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border:1px solid #e6e4de;border-radius:999px;font-size:12px;color:#5b5953;background:#fff}
.km-area.active{border-color:#2f6f5e;background:#eef4f1;color:#24584a;font-weight:600}
.km-area i{width:9px;height:9px;border-radius:50%;display:inline-block}
.km-search{width:170px;padding:6px 10px;border:1px solid #e3e1db;border-radius:8px;font-size:13px}
.km-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}
.km-canvas{position:relative;border:1px solid #e8e6e0;border-radius:12px;background:radial-gradient(circle at 50% 45%,#fff 0,#fbfbf9 60%,#f6f5f1 100%);overflow:hidden}
.km-svg{display:block;width:100%;height:auto;aspect-ratio:16/11;cursor:grab;touch-action:none;user-select:none}
.km-svg:active{cursor:grabbing}
.km-edge{stroke:#cfccc3;stroke-width:.8;opacity:.55}
.km-edge.km-mention{stroke:#e2a93c;stroke-width:1;opacity:.7;display:none}
.km-focus .km-edge.km-mention.km-on{display:inline}
.km-edge.km-similar{stroke:#8aa4d6;stroke-dasharray:4 4;opacity:.6}
.km-edge.km-link{stroke:#2f6f5e;stroke-width:1.6;opacity:.75}
.km-edge.km-parent{stroke:#bdb9ae;stroke-width:1;opacity:.4}
.km-node{cursor:pointer;transition:opacity .15s}
.km-node circle{stroke:#fff;stroke-width:1.5}
.km-concept circle{fill:#f2c45a;stroke:#b98a1f;stroke-width:1.2}
.km-concept.km-marked circle{fill:#f0a83c}
.km-note.km-recent circle{stroke:#d1242f;stroke-width:2}
.km-node text{font-size:11px;fill:#6b6860;text-anchor:middle;paint-order:stroke;stroke:#fffffff0;stroke-width:3px;pointer-events:none}
.km-note text{display:none}
.km-zoomed .km-note text,.km-focus .km-note.km-on text,.km-note.km-picked text{display:block}
.km-node .km-label-strong{font-size:12.5px;font-weight:700;fill:#2b2c29}
.km-concept text{font-size:13px;font-weight:700;fill:#5a3e00}
.km-node:hover circle,.km-node:focus circle,.km-picked circle{stroke:#1f201d;stroke-width:2.5}
.km-faded{opacity:.15}
.km-focus .km-node:not(.km-on){opacity:.18}
.km-focus .km-edge:not(.km-on){opacity:.06}
.km-focus .km-edge.km-on{opacity:1;stroke-width:2}
.km-legend{position:absolute;left:10px;bottom:8px;display:flex;flex-wrap:wrap;gap:12px;padding:5px 10px;border-radius:8px;background:#ffffffd9;font-size:11.5px;color:#6b6860}
.km-legend span{display:inline-flex;align-items:center;gap:5px}
.km-dot-concept,.km-dot-note{display:inline-block;width:10px;height:10px;border-radius:50%}
.km-dot-concept{background:#f2c45a;border:1px solid #b98a1f}.km-dot-note{background:#2f6f5e}
.km-line-link,.km-line-similar{display:inline-block;width:18px;border-top:2px solid #2f6f5e}.km-line-similar{border-top:2px dashed #8aa4d6}
.km-side{max-height:calc(100vh - 150px);overflow:auto;padding:14px 16px;border:1px solid #e8e6e0;border-radius:12px;background:#fff;font-size:14px}
.km-side h2{font-size:17px;margin:4px 0 6px}
.km-side h3{font-size:13.5px;margin:16px 0 6px;color:#24584a}
.km-side h3 small{display:block;font-weight:400;color:#8a877f;font-size:11.5px;margin-top:2px}
.km-stat{color:#6b6860;font-size:13px;margin:0 0 6px}
.km-chips{display:flex;flex-wrap:wrap;gap:5px}
.km-chip{padding:3px 9px;border-radius:999px;background:#fff6dc;border:1px solid #f0d9a8;font-size:12.5px;color:#5a3e00}
.km-chip small{color:#a0761e}
.km-chip.km-bridge{background:#eef2fb;border-color:#c9d6f0;color:#2c4a80}
.km-suggest{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:9px 0;border-bottom:1px solid #f1f0ec}
.km-suggest small{color:#8a877f;font-size:11.5px}
.km-suggest .km-connect{margin-top:2px}
.km-link{color:#2f6f5e;text-align:left;font-size:13.5px}
.km-link:hover{text-decoration:underline}
.km-row{display:block;padding:4px 0}
.km-occur{padding:8px 0;border-bottom:1px solid #f1f0ec}
.km-occur p{margin:3px 0 0;font-size:12.5px;color:#6b6860;line-height:1.6}
.km-start{margin:0 0 22px;padding:14px 16px;border:1px solid #c9d6f0;border-left:4px solid #3f5f9a;border-radius:10px;background:#f6f8fd}
.km-start h2{font-size:15px;margin:0}
.km-start p{margin:8px 0 0;font-size:13.5px}
@media(max-width:1100px){.km-layout{grid-template-columns:1fr}.km-side{max-height:none}}
