.map-page{flex-direction:column;width:100%;height:100dvh;min-height:590px;display:flex;overflow:hidden}.knowledge-map{--km-surface:var(--color-fd-background);--km-panel:var(--color-fd-card);--km-line:var(--color-fd-border);width:100%;min-height:0;color:var(--color-fd-foreground);flex:1;margin:0;padding:0}.km-shell{background:var(--km-surface);grid-template-columns:205px minmax(0,1fr) 280px;height:100%;min-height:0;display:grid;overflow:hidden}.km-topics,.km-detail{background:var(--km-panel)}.km-topics{border-right:1px solid var(--km-line);min-height:0;padding:1.35rem .7rem;overflow-y:auto}.km-panel-title{align-items:center;gap:.55rem;padding:0 .75rem .3rem;font-size:.87rem;font-weight:700;display:flex}.km-panel-title svg{color:var(--color-fd-muted-foreground)}.km-panel-title h1{margin:0;font-size:1.05rem;font-weight:750}.km-back-link{color:var(--color-fd-muted-foreground);margin:0 0 .7rem;padding:.2rem .75rem;font-size:.76rem;text-decoration:none;display:inline-block}.km-back-link:hover{color:var(--color-fd-foreground)}.km-mode-switch{border:1px solid var(--km-line);background:var(--color-fd-background);border-radius:.45rem;gap:2px;margin:.25rem .55rem .85rem;padding:3px;display:flex}.km-mode-switch button{min-height:1.9rem;color:var(--color-fd-muted-foreground);border-radius:.3rem;flex:1;font-size:.78rem}.km-mode-switch button:hover,.km-mode-switch button.is-active{background:var(--color-fd-accent);color:var(--color-fd-foreground)}.km-mode-switch button.is-active{font-weight:700}.km-tag-filter{border:1px solid var(--km-line);height:2rem;color:var(--color-fd-muted-foreground);border-radius:.4rem;align-items:center;gap:.35rem;margin:0 .55rem .65rem;padding:0 .5rem;display:flex}.km-tag-filter input{width:100%;min-width:0;color:var(--color-fd-foreground);background:0 0;outline:none;font-size:.78rem}.km-tag-filter:focus-within{border-color:var(--color-fd-foreground)}.km-tag-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.km-sidebar-list{min-height:0}.km-sidebar-caption{color:var(--color-fd-muted-foreground);margin:0 0 1.1rem;padding:0 .75rem;font-size:.72rem}.km-topic{text-align:left;width:100%;min-height:2.5rem;color:var(--color-fd-muted-foreground);border-radius:.6rem;align-items:center;gap:.7rem;padding:.4rem .72rem;font-size:.88rem;transition:background .15s,color .15s,transform .15s;display:flex}.km-topic:hover{background:color-mix(in oklab, var(--color-fd-accent) 80%, transparent);color:var(--color-fd-foreground);transform:translate(2px)}.km-topic.is-active{background:var(--color-fd-accent);color:var(--color-fd-foreground);font-weight:650}.km-topic:focus-visible,.km-back-link:focus-visible,.km-mode-switch button:focus-visible,.km-focus-toggle:focus-visible,.km-zoom button:focus-visible,.km-search-wrap button:focus-visible,.km-related button:focus-visible,.km-read-link:focus-visible{outline:2px solid var(--color-fd-foreground);outline-offset:2px}.km-topic-mark{background:var(--color-fd-muted-foreground);width:.6rem;height:.6rem;box-shadow:0 0 0 3px color-mix(in oklab, currentColor 7%, transparent);border-radius:50%;flex:none;display:inline-block}.km-topic-all{background:var(--color-fd-foreground)}.km-topic-count{font-variant-numeric:tabular-nums;opacity:.72;margin-left:auto;font-size:.75rem}.km-topics-note{color:var(--color-fd-muted-foreground);margin:1.15rem .75rem 0;font-size:.76rem;line-height:1.65}.km-main{flex-direction:column;min-width:0;min-height:0;display:flex}.km-toolbar{border-bottom:1px solid var(--km-line);align-items:center;gap:.65rem;min-height:4rem;padding:.7rem .9rem;display:flex}.km-search-wrap{border:1px solid var(--km-line);background:var(--color-fd-background);width:min(290px,48%);height:2.35rem;color:var(--color-fd-muted-foreground);border-radius:.6rem;align-items:center;gap:.55rem;padding:0 .75rem;display:flex;position:relative}.km-search-wrap:focus-within{border-color:var(--color-fd-foreground);box-shadow:0 0 0 3px color-mix(in oklab, var(--color-fd-foreground) 10%, transparent)}.km-search-wrap input{width:100%;min-width:0;color:var(--color-fd-foreground);background:0 0;border:0;outline:0;font-size:.85rem}.km-search-wrap input::placeholder{color:var(--color-fd-muted-foreground)}.km-search-wrap>button{flex:none;place-items:center;display:grid}.km-search-results{z-index:20;border:1px solid var(--km-line);background:var(--color-fd-background);border-radius:.7rem;width:min(390px,82vw);max-height:22rem;padding:.35rem;position:absolute;top:calc(100% + .45rem);left:0;overflow:auto;box-shadow:0 18px 35px #0002}.km-search-results button{text-align:left;border-radius:.45rem;justify-content:space-between;align-items:center;gap:.6rem;width:100%;padding:.65rem;font-size:.82rem;display:flex}.km-search-results button:hover{background:var(--color-fd-accent)}.km-search-results button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.km-search-results small{color:var(--color-fd-muted-foreground);flex:none}.km-search-results p{margin:0;padding:.7rem;font-size:.83rem}.km-toolbar-hint{color:var(--color-fd-muted-foreground);white-space:nowrap;margin-left:auto;font-size:.72rem}.km-legend-line{border-top:2px solid var(--color-fd-foreground);vertical-align:middle;width:1.2rem;margin:0 .3rem .17rem .75rem;display:inline-block}.km-legend-line.is-dashed{border-top-style:dashed;border-color:var(--color-fd-muted-foreground)}.km-focus-toggle{border:1px solid var(--km-line);color:var(--color-fd-muted-foreground);background:var(--color-fd-background);white-space:nowrap;border-radius:.55rem;flex:none;align-items:center;gap:.45rem;padding:.43rem .6rem;font-size:.75rem;display:inline-flex}.km-focus-toggle:hover,.km-focus-toggle.is-active{color:var(--color-fd-foreground);background:var(--color-fd-accent)}.km-focus-indicator{border:1.5px solid;border-radius:50%;width:.48rem;height:.48rem}.km-focus-toggle.is-active .km-focus-indicator{background:currentColor}.km-zoom{border:1px solid var(--km-line);background:var(--color-fd-background);border-radius:.55rem;align-items:center;gap:.1rem;padding:.2rem;display:flex}.km-zoom button{width:1.85rem;height:1.85rem;color:var(--color-fd-muted-foreground);border-radius:.35rem;place-items:center;display:grid}.km-zoom button:hover{background:var(--color-fd-accent);color:var(--color-fd-foreground)}.km-canvas-wrap{background:var(--km-surface);flex:1;min-height:0;position:relative;overflow:hidden}.km-canvas-wrap:before{pointer-events:none;content:"";opacity:.36;background-image:radial-gradient(color-mix(in oklab, var(--color-fd-muted-foreground) 34%, transparent) .7px, transparent .7px);background-size:20px 20px;position:absolute;inset:0}.km-canvas{touch-action:none;cursor:grab;width:100%;height:100%;position:absolute;inset:0}.km-canvas:active{cursor:grabbing}.km-link{stroke:color-mix(in oklab, var(--color-fd-muted-foreground) 36%, transparent);stroke-width:1.5px;pointer-events:none}.km-link-relation{stroke:var(--color-fd-foreground);stroke-width:2.2px;opacity:.55}.km-link-tag{stroke:var(--color-fd-muted-foreground);stroke-width:1.8px;stroke-dasharray:5 6;opacity:.7}.km-link-overview{opacity:.55}.km-tag-cooccurrence{stroke:var(--color-fd-foreground);opacity:.28}.km-tag-membership{stroke:var(--color-fd-muted-foreground);stroke-dasharray:4 5;opacity:.52}.km-link-hit{stroke:#0000;stroke-width:16px;pointer-events:stroke;cursor:help}.km-link-hint{z-index:10;border:1px solid var(--km-line);background:var(--color-fd-background);max-width:230px;color:var(--color-fd-foreground);pointer-events:none;border-radius:.55rem;gap:.2rem;padding:.55rem .7rem;font-size:.75rem;line-height:1.45;display:grid;position:absolute;box-shadow:0 10px 24px #0002}.km-link-hint strong{font-size:.72rem}.km-link-hint span{color:var(--color-fd-muted-foreground)}.km-node{cursor:pointer;outline:none}.km-node:focus,.km-node:focus-visible{outline:none}.km-node:focus-visible .km-node-halo,.km-node:focus-visible .km-article-halo{stroke:var(--color-fd-foreground);stroke-width:2px}.km-node.is-dimmed{opacity:.45}.km-node-halo{opacity:.16;transition:opacity .18s,r .18s}.km-node-disc{stroke:var(--color-fd-background);stroke-width:3px;filter:drop-shadow(0 4px 8px #0003)}.km-node:hover .km-node-halo,.km-node.is-selected .km-node-halo{opacity:.35;r:44}.km-node-topic-label,.km-node-article-label,.km-node-topic-count{pointer-events:none;-webkit-user-select:none;user-select:none;fill:var(--color-fd-foreground)}.km-node-tag-label{pointer-events:none;-webkit-user-select:none;user-select:none;fill:var(--color-fd-foreground);paint-order:stroke;stroke:var(--km-surface);stroke-width:4px;font-size:12px;font-weight:650}.km-node-topic-label{paint-order:stroke;stroke:var(--km-surface);stroke-width:4px;font-size:17px;font-weight:700}.km-node-topic-count{fill:#202020;font-size:16px;font-weight:750}.km-article-halo{opacity:.17;transition:opacity .18s,r .18s}.km-node:hover .km-article-halo,.km-node.is-selected .km-article-halo{opacity:.38;r:21}.km-article-disc{stroke:var(--km-surface);stroke-width:2px}.km-node-article-label{paint-order:stroke;stroke:var(--km-surface);stroke-width:4px;opacity:0;font-size:12px;font-weight:570}.km-node:hover .km-node-article-label,.km-node.is-selected .km-node-article-label,.km-node:focus-visible .km-node-article-label{opacity:1}.km-detail{border-left:1px solid var(--km-line);padding:1.7rem 1.2rem;overflow-y:auto}.km-detail-kicker{color:var(--color-fd-muted-foreground);letter-spacing:.06em;align-items:center;gap:.55rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;display:flex}.km-detail h2{letter-spacing:-.025em;margin:0;font-size:1.32rem;font-weight:730;line-height:1.38}.km-detail-description{color:var(--color-fd-muted-foreground);margin:.85rem 0 1.3rem;font-size:.85rem;line-height:1.75}.km-read-link{background:var(--color-fd-foreground);width:100%;color:var(--color-fd-background);border-radius:.55rem;justify-content:space-between;align-items:center;padding:.7rem .85rem;font-size:.85rem;font-weight:700;text-decoration:none;transition:opacity .15s,transform .15s;display:flex}.km-read-link:hover{opacity:.82;transform:translateY(-2px)}.km-related{border-top:1px solid var(--km-line);margin-top:1.75rem;padding-top:1rem}.km-related h3{color:var(--color-fd-muted-foreground);margin:0 0 .6rem;font-size:.76rem;font-weight:700}.km-related button{border-bottom:1px solid var(--km-line);text-align:left;width:100%;padding:.7rem 0;display:block}.km-related button:last-child{border-bottom:0}.km-related button span{font-size:.82rem;font-weight:650;line-height:1.5;display:block}.km-related button:hover span{color:var(--color-fd-foreground);text-decoration:underline}.km-related button small{color:var(--color-fd-muted-foreground);margin-top:.3rem;font-size:.72rem;line-height:1.5;display:block}.km-detail-tags{flex-wrap:wrap;gap:.35rem;margin-top:1.4rem;display:flex}.km-detail-tags span{border:1px solid var(--km-line);color:var(--color-fd-muted-foreground);border-radius:.3rem;padding:.25rem .45rem;font-size:.7rem}.km-detail-tip{color:var(--color-fd-muted-foreground);margin-top:2.1rem;font-size:.82rem;line-height:2.45}.km-detail-tip span{color:var(--color-fd-foreground);font-variant-numeric:tabular-nums;margin-right:.65rem}@media (max-width:1120px){.km-shell{grid-template-columns:180px minmax(0,1fr) 230px}.km-toolbar-hint{display:none}}@media (max-width:700px){.map-page{height:auto;min-height:100dvh;overflow:visible}.km-shell{height:auto;display:block}.km-topics{border-right:0;border-bottom:1px solid var(--km-line);scrollbar-width:thin;align-items:center;gap:.35rem;padding:.7rem;display:flex;overflow-x:auto}.km-panel-title,.km-sidebar-caption,.km-topics-note,.km-topic-count{display:none}.km-mode-switch{flex:0 0 112px;order:-1;margin:0}.km-tag-filter{flex:0 0 110px;margin:0}.km-sidebar-list{gap:.35rem;display:flex}.km-tag-name{max-width:130px}.km-back-link{white-space:nowrap;flex:none;align-self:center;margin:0;padding:.4rem}.km-topic{white-space:nowrap;flex:none;width:auto;min-height:2.2rem;padding:.4rem .6rem;font-size:.8rem}.km-toolbar{flex-wrap:wrap;padding:.55rem .65rem}.km-search-wrap{flex:100%;width:100%;min-width:0}.km-focus-toggle{margin-left:auto}.km-canvas-wrap{height:min(65dvh,600px);min-height:420px}.km-detail{max-height:none;padding:1.2rem}}@media (prefers-reduced-motion:reduce){.knowledge-map *,.knowledge-map :before,.knowledge-map :after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
