/* AI基础 3.0: blue theme, Obsidian TOC, hierarchical article and shared relation maps. */
:root{--accent:#548dff;--accent-bg:#548dff18;--text:#e6eaf1;--secondary:#a5afbf;--muted:#768296;--map-blue:#81b2ff;--toc-width:226px}
.wiki,.source-link,.curriculum a{color:#8eb5f5;border-color:#548dff55}.wiki:hover,.source-link:hover,.curriculum a:hover{color:#c1d9ff;background:#548dff12}
.brand-dot,.toolbar-tools .bookmarked{color:#6e9fff}.rail-button.active,.rail-button:hover{color:#a9c9ff;background:#548dff18}.rail-button.active:before{background:#548dff}.tab.active{color:#c9dcff;background:#19202b}.tab{color:#7b879b}.view-switch .selected{color:#c6dcff;background:#23334c;border-color:#548dff45;box-shadow:none}.view-switch button{color:#8795ab}.breadcrumb span:last-child{color:#bccadd}.document{color:#aab3c2}.document h1,.section-heading{color:#e0e8f5}.document strong{color:#cedaeb}.document .lead{color:#b9c7db}.doc-meta .level-tag,.level-line{color:#809dc4}.document .code-key{color:#8db8ff}.document .code-string{color:#a3bdcf}.backlink{color:#aabedc}.backlink:hover{border-color:#548dff55}.float-title{color:#a3b3cb}.float-grip{color:#64748a}.count-badge{color:#7b8fac}.floating{background:#191e27f7;border-color:#90b8f51c}.canvas-view{background:radial-gradient(#86acdf19 1px,transparent 1px);background-size:24px 24px}.canvas-top h2{color:#b7cceb}.canvas-filters{background:#131c29ed;border-color:#79a4dc20}.canvas-filters button{color:#7d94b5}.canvas-filters .active{background:#548dff24;color:#bcdaff}.canvas-bottom{color:#7892b5}.graph-controls{background:#172338ed;border-color:#6398e33d}.graph-controls button,.graph-controls>span{color:#9cbdec}.graph-controls button:hover{background:#548dff24}.graph-controls .control-divider{background:#86abde25}.edge-detail,.article-edge-detail{background:#172338f5;border-color:#548dff55}.edge-detail strong,.article-edge-detail strong{color:#c5dcff}.edge-detail p,.article-edge-detail p{color:#9eb6d7}.search-box{color:#8cb4f1}.search-box input{color:#d1e1fa}.search-result:hover{background:#548dff18}.search-result strong{color:#c0d8fd}.search-result span{color:#8ea4c2}.search-result small,.search-footer,.empty-search{color:#7188a7}.toast{background:#1a2a43;color:#c5dbff;border-color:#548dff4a}
.graph-node,.mini-graph .graph-node,.article-graph .graph-node{border:1px solid #527bad65;background:#172131;box-shadow:none}.graph-node.is-current,.mini-graph .graph-node.is-current,.article-graph .graph-node.is-current{background:#244b7c;border-color:#77acff;box-shadow:inset 0 0 0 1px #77acff25}.graph-node:hover{background:#203652;border-color:#8cbaff;box-shadow:none}.graph-node strong{color:#cedff7;font-size:calc(15px * var(--card-scale,1));line-height:1.45}.graph-node .node-meta{color:#8ca5ca}.graph-node .node-indicator{background:#94c4ff}.mini-graph .graph-node strong{font-size:calc(11px * var(--card-scale,1));line-height:1.3}.article-graph .graph-node strong{font-size:calc(13px * var(--card-scale,1))}.graph-line{stroke:#5686c975;stroke-width:1.1}.graph-line.active{stroke:#6da6f4c4;stroke-width:1.3}.graph-line.comparison{stroke:#628ec5a6;stroke-dasharray:4 5}.graph-flow{fill:none;stroke:#b9dfff;stroke-width:1.9;stroke-linecap:round;stroke-dasharray:7 93;stroke-dashoffset:100;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 3px #4c91ff);opacity:.45;animation:knowledge-flow 4s linear infinite;pointer-events:none}.graph-flow.active{opacity:.95}.graph-edge-label,.mini-graph .graph-edge-label{background:#101b2bf0;border:1px solid #5d94df22;color:#a5c8f6;padding:2px 5px;font-size:10px;line-height:1.4;transform:translate(-50%,-50%) scale(var(--label-scale,1));transform-origin:center}.graph-edge-label:hover{color:#e2efff;border-color:#679de8a6}.graph-topic-label{color:#7b9ac3}
@keyframes knowledge-flow{to{stroke-dashoffset:0}}
.article-map-shell{position:relative;border:1px solid #6b98d32c;margin:10px 0 18px;background:#121923;overflow:hidden}.article-graph{height:430px;position:relative;overflow:hidden;background:radial-gradient(#86acdf18 1px,transparent 1px);background-size:22px 22px;touch-action:none;cursor:grab}.article-graph .graph-node{width:128px;height:128px;padding:12px}.article-map-tools{position:absolute;bottom:8px;right:8px;display:flex;gap:2px;padding:3px;background:#172338ed;border:1px solid #6398e335}.article-map-tools button{display:grid;place-items:center;width:26px;height:26px;color:#a5c7f5;font-size:17px;padding:0}.article-map-tools svg{width:13px;height:13px}.article-edge-detail{position:absolute;bottom:50px;right:8px;left:8px;border:1px solid #548dff55;padding:12px 30px 12px 12px;z-index:6;font-size:11px;line-height:1.6}.article-edge-detail p{margin:6px 0 0!important;font-size:11px}.article-edge-detail button{position:absolute;right:8px;top:8px;font-size:17px;color:#a5c7f5}
/* A stable left reading gutter. Pinning changes visibility, never shifts the article. */
.content-area>.reader{padding-left:264px}.document>.doc-section{margin-left:var(--article-indent,16px)}.doc-section>.section-heading{margin-left:0}.document h3,.document h4,.document h5,.document h6{line-height:1.6;font-weight:500;color:#bdcfe7;margin-top:15px;margin-bottom:8px}.document h3{font-size:14px}.document h4{font-size:13px}.document h5,.document h6{font-size:12px}.doc-section :is(h3,h4,h5,h6){margin-left:calc(var(--article-indent,32px) - 16px)}.section-content>:not(h1,h2,h3,h4,h5,h6){margin-left:var(--content-indent,0px)}[data-toc-body-hidden]{display:none!important}
.floating-toc-panel{position:absolute;z-index:5;left:8px;top:26px;width:32px;max-height:calc(100% - 48px);padding:0;border:0;background:transparent;box-shadow:none;color:#a2b0c4;overflow:hidden;transition:none}.floating-toc-panel.is-expanded{width:var(--toc-width)}.floating-toc-panel.is-expanded:not(.is-pinned){background:#171d27f7;border:1px solid #7c9cc324}.toc-toolbar{height:26px;display:flex;align-items:center;gap:1px;padding:0 3px;visibility:hidden}.is-expanded .toc-toolbar{visibility:visible}.toc-toolbar button,.toc-search button{width:23px;height:24px;padding:4px;display:grid;place-items:center;color:#78889f}.toc-toolbar svg,.toc-search svg{width:12px;height:12px}.toc-toolbar button:hover,.toc-toolbar button[aria-pressed=true]{color:#9bc2ff;background:#548dff0e}.toc-search{height:29px;display:flex;align-items:center;padding:1px 4px;border-bottom:1px solid #7b9ccc22;gap:3px}.toc-search input{width:100%;min-width:0;border:0;background:none;color:#c4d9f6;padding:4px;font-size:12px;outline:none}.toc-search span{font-size:9px;white-space:nowrap;color:#8da5c7}.is-searching .toc-toolbar{display:none}
#toc{overflow:auto;max-height:calc(100dvh - 174px);padding:2px 0 8px;scrollbar-width:none;overscroll-behavior:contain}#toc::-webkit-scrollbar{display:none}#toc ol{list-style:none;padding:0;margin:0}#toc li{padding:0;margin:0}#toc .toc-row{height:23px;position:relative;display:flex;align-items:center;padding-left:var(--heading-indent);gap:0;color:#9aabc2;opacity:.88}#toc .toc-row.active,#toc .toc-row.ancestor-active,#toc .toc-row:hover{opacity:1}#toc a{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 4px 2px 0;font-size:12px;line-height:19px;text-decoration:none;color:var(--toc-heading-color,#b6c6da);pointer-events:none;opacity:0}#toc .toc-row.active>a{font-weight:650}#toc .toc-row.active:after{content:"";position:absolute;left:0;width:2px;height:12px;background:#6daaff}.is-expanded #toc a{pointer-events:auto;opacity:1}#toc [data-heading-level="1"]{--toc-heading-color:#FFFFFF}#toc [data-heading-level="2"]{--toc-heading-color:#FF1806}#toc [data-heading-level="3"]{--toc-heading-color:#FFB000}#toc [data-heading-level="4"]{--toc-heading-color:#FFFA0E}#toc [data-heading-level="5"]{--toc-heading-color:#FEE89F}#toc [data-heading-level="6"]{--toc-heading-color:#FEF9D0}
.toc-branch,.toc-leaf-space{width:16px;height:21px;display:grid;place-items:center;flex-shrink:0;padding:0;color:#8c99ac;opacity:0;pointer-events:none}.toc-branch svg{width:11px;height:11px;transform:rotate(0deg)}.toc-branch[aria-expanded=false] svg{transform:rotate(-90deg)}.is-expanded .toc-branch,.is-expanded .toc-leaf-space{opacity:1;pointer-events:auto}.toc-edge-bar{position:absolute;left:0;width:28px;height:2px;background:#778ba85e}.toc-row.active .toc-edge-bar{background:#72aaff}.is-expanded .toc-edge-bar{display:none}#toc [data-heading-level="2"] .toc-edge-bar{width:21px}#toc [data-heading-level="3"] .toc-edge-bar{width:14px}#toc [data-heading-level="4"] .toc-edge-bar{width:10px}#toc [data-heading-level="5"] .toc-edge-bar{width:7px}#toc [data-heading-level="6"] .toc-edge-bar{width:4px}#toc .search-match{background:#548dff13}#toc .search-current{background:#548dff29;outline:1px solid #548dff36;outline-offset:-1px}.canvas-active .floating-toc-panel{display:none}
@media(min-width:1700px){:root{--toc-width:250px}.content-area>.reader{padding-left:292px}#toc a{font-size:12.8px}.floating-toc-panel{top:32px;left:10px}}
@media(min-width:1051px) and (max-width:1250px){:root{--toc-width:192px}.content-area>.reader{padding-left:220px;padding-right:264px}.floating-toc-panel{left:7px}#toc a{font-size:11px}}
@media(max-width:1050px){:root{--toc-width:228px}.content-area>.reader{padding-left:40px}.floating-toc-panel{left:4px;top:26px}.floating-toc-panel.is-expanded{background:#151c27f7;border:1px solid #729bdd32}}
@media(max-width:760px){.content-area>.reader{padding-left:20px}.floating-toc-panel,[data-action="toc"]{display:none!important}.article-graph{height:370px}.document>.doc-section{margin-left:12px}.document h3{font-size:13px}.article-edge-detail{font-size:10px}}
@media(prefers-reduced-motion:reduce){.graph-flow{animation:none;display:none}}

.mini-graph .graph-node{padding:8px}.mini-graph .graph-node strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-height:4.1em}.mini-graph .node-meta{display:none}.mini-graph .graph-edge-label{font-size:9px}

.mini-graph{height:236px}

.document>:is(h2,h3,h4,h5,h6,p,ul,ol,blockquote,pre){margin-left:var(--article-indent,0px)}
/* Visual alignment contract: 4px rhythm, shared rails, hanging disclosure controls. */
:root{--space-unit:4px;--heading-step:16px;--reading-top:24px;--toc-width:224px}
.content-area>.reader{padding-top:var(--reading-top);padding-left:264px;padding-right:300px}.floating-toc-panel{left:16px;top:var(--reading-top)}.related-panel:not(.dragged){right:24px;top:var(--reading-top)}
.document>.doc-section{margin-left:var(--article-indent,var(--heading-step))}.section-heading button{position:relative;gap:0;min-height:24px}.section-heading button>svg{position:absolute;left:-18px;top:50%;margin-top:-6px;width:12px;height:12px}.section-content>p,.document .lead{line-height:1.9}.doc-section{margin-top:24px}.section-heading{margin-bottom:12px}.document h3,.document h4,.document h5,.document h6{margin-top:16px;margin-bottom:8px}.article-map-shell{margin-top:12px}
.ui-icon{display:block;width:16px;height:16px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
button{transition:color .12s,background-color .12s,border-color .12s}button:focus-visible,a:focus-visible{outline:1px solid #97bfff;outline-offset:3px}button:disabled{opacity:.32;cursor:default}button:not(:disabled):active{filter:brightness(1.18)}
.icon-button,.close-tab,.toc-toolbar button,.toc-search button,.article-edge-detail>button{width:28px;height:28px;display:inline-grid;place-items:center;padding:6px;color:#8ca2c1;flex-shrink:0}.icon-button:hover,.close-tab:hover,.toc-toolbar button:hover,.toc-search button:hover,.article-edge-detail>button:hover{background:#548dff18;color:#d5e6ff}.icon-button svg,.close-tab svg{width:14px;height:14px}.close-tab{margin-right:-4px}.tab .close-tab{font-size:inherit;padding:6px}.graph-controls,.article-map-tools{gap:4px;padding:4px}.graph-controls button,.article-map-tools button{width:28px;height:28px;display:grid;place-items:center;padding:6px}.graph-controls button svg,.article-map-tools button svg{width:16px;height:16px}.article-edge-detail>button{right:4px;top:4px}.article-edge-detail>button svg{width:14px;height:14px}.toc-toolbar{height:28px;gap:0;padding:0}.toc-toolbar button{width:24px;height:24px;padding:5px}.toc-toolbar svg{width:14px;height:14px}.toc-branch svg{width:12px;height:12px}.toc-branch{width:16px}.welcome-link .arrow svg,.backlink>span svg{width:14px;height:14px}.source-link .ui-icon{display:inline-block;width:12px;height:12px;vertical-align:-2px}.float-title{padding:0 8px;height:32px;gap:4px}.float-title .icon-button{width:24px;height:24px;padding:5px}.float-title .icon-button svg{width:14px;height:14px}
@media(min-width:1700px){:root{--toc-width:248px}.content-area>.reader{padding-left:288px;padding-right:312px}.floating-toc-panel{left:16px;top:24px}}
@media(min-width:1051px) and (max-width:1250px){:root{--toc-width:192px}.content-area>.reader{padding-left:224px;padding-right:268px}.floating-toc-panel{left:16px}.related-panel:not(.dragged){right:16px}}
@media(max-width:1050px){.content-area>.reader{padding-left:40px;padding-right:32px}.floating-toc-panel{left:4px}.related-panel:not(.dragged){top:auto;bottom:12px;right:12px}}
@media(max-width:760px){.content-area>.reader{padding-left:20px;padding-right:20px}.icon-button{width:32px;height:32px}.document>.doc-section{margin-left:16px}.graph-controls button,.article-map-tools button{width:32px;height:32px}}
/* One card template, progressive detail when zooming; no decorative placeholders. */
.graph-node.document-card,.article-graph .graph-node.document-card{width:208px;height:208px;padding:16px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:12px;overflow:hidden;background:#172131;border-color:#7294c044;box-shadow:none;text-align:left}
.graph-node.document-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:#548dff55}.graph-node.document-card.is-current{background:#244b7c;border-color:#77acff}.graph-node.document-card.is-current:before{background:#95c1ff}.graph-node.document-card:hover{background:#203653;border-color:#9dc4fc}.graph-node.document-card:focus-visible{outline:2px solid #c0dcff;outline-offset:4px}.graph-node.document-card.is-current:hover{background:#2a5689}
.card-header{display:flex;align-items:center;justify-content:space-between;height:16px;min-height:16px;gap:8px;color:#8da7cb}.card-topic{display:flex;align-items:center;gap:6px;min-width:0;font-size:10px;line-height:16px;letter-spacing:.2px}.card-topic>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-topic .ui-icon{width:13px;height:13px}.card-current{color:#a8ccff}.card-current .ui-icon{width:13px;height:13px}.card-body{display:flex;flex:1;min-height:0;flex-direction:column;justify-content:center;gap:8px}.graph-node strong.card-title{font-size:calc(18px * var(--card-scale,1));font-weight:550;line-height:1.35;letter-spacing:-.2px;color:#e2ecfb;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-height:4.05em}.graph-node.long-title strong.card-title{font-size:calc(15px * var(--card-scale,1))}.card-summary{color:#94a9c5;font-size:calc(12px * var(--card-scale,1));line-height:1.55;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-height:3.1em}.is-current .card-summary{color:#b6cdec}.card-footer{display:flex;align-items:center;min-height:20px;gap:8px;padding-top:8px;border-top:1px solid #8cadda22;color:#8faacb;font-size:10px;line-height:12px}.card-depth{white-space:nowrap}.card-connections{display:flex;align-items:center;gap:4px;margin-left:auto}.card-connections .ui-icon{width:12px;height:12px}.card-open{display:none;color:#bad6ff}.card-open .ui-icon{width:12px;height:12px}.document-card:hover .card-open{display:block}.is-current .card-footer{color:#bbd5f5;border-color:#a7c9f32e}
.graph-overview .card-header,.graph-overview .card-summary,.graph-overview .card-footer{display:none}.graph-overview .card-body{justify-content:center}.graph-overview .graph-node strong.card-title{font-size:22px;line-height:1.4}
.mini-graph .graph-node.document-card{width:84px;height:84px;padding:8px;gap:0}.mini-graph .card-header,.mini-graph .card-summary,.mini-graph .card-footer{display:none}.mini-graph .graph-node strong.card-title,.mini-graph .graph-node.long-title strong.card-title{font-size:calc(11px * var(--card-scale,1));line-height:1.3;max-height:3.9em;-webkit-line-clamp:3}.mini-graph .card-body{justify-content:center;gap:0}

.mobile-menu{display:none}.graph-overview .graph-node strong.card-title{font-size:calc(16px * var(--label-scale,1));line-height:1.4}.icon-button[aria-pressed="true"]{color:#c5ddff;background:#548dff28}.icon-button[data-state="hover"]{background:#548dff18;color:#d5e6ff}.icon-button[data-state="focus"]{outline:1px solid #97bfff;outline-offset:3px}.icon-button[data-state="pressed"]{filter:brightness(1.18)}@media(max-width:760px){.mobile-menu{display:inline-grid}}

.document-card .card-body{justify-content:flex-start;padding-top:8px}.mini-graph .document-card .card-body,.graph-overview .document-card .card-body{justify-content:center;padding-top:0}

/* Mini-map owns its typography even when the global overview threshold is active. */
.mini-graph .graph-node.document-card{width:144px;height:144px}.mini-graph .graph-node strong.card-title,.mini-graph.graph-overview .graph-node strong.card-title,.mini-graph .graph-node.long-title strong.card-title{font-size:calc(18px * var(--card-scale,1));line-height:1.3;max-height:3.9em;-webkit-line-clamp:3;word-break:break-word}

/* Relationship copy is an action, never an abstract category label. */
.graph-edge-label,.mini-graph .graph-edge-label{white-space:normal;width:max-content;max-width:84px;padding:3px 6px;font-size:10.5px;line-height:1.35;text-align:center;word-break:normal}.mini-graph .graph-edge-label{font-size:10px}.edge-detail strong,.article-edge-detail strong{line-height:1.65;font-size:13px}.edge-detail small,.article-edge-detail small{display:block;margin-top:12px;color:#839bbc;font-size:10px}.graph-flow{filter:none}.graph-host.is-navigating .graph-flow{display:none!important}.graph-host.is-navigating{cursor:grabbing}.graph-host.is-navigating .document-card{pointer-events:none}.graph-world{backface-visibility:hidden}

/* Keep moving text and paths in a single stable 2D paint context. */
.graph-world{will-change:auto;backface-visibility:visible}.graph-host{contain:layout paint;-webkit-user-select:none;user-select:none}.graph-host button{transition:none}.graph-host button:not(:disabled):active{filter:none}

/* Relationship reach is distinct from viewport zoom. */
.canvas-range-panel{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.canvas-top{align-items:flex-start}.range-controls{display:flex;align-items:stretch;width:max-content;border:1px solid #6398e340;background:#142033f5;isolation:isolate;color:#a8caff;height:34px}.range-current{display:flex;align-items:center;justify-content:center;min-width:36px;padding:0 8px;color:#d4e4ff;background:#2c4b78;font-size:11px;font-variant-numeric:tabular-nums;border-right:1px solid #6398e340}.range-controls button{display:flex;gap:6px;align-items:center;justify-content:center;min-width:58px;height:32px;padding:0 8px;font-size:11px;color:#a8caff;font-variant-numeric:tabular-nums;border-left:1px solid #6398e326;line-height:1;white-space:nowrap}.range-controls button:first-of-type{border-left:0}.range-controls .ui-icon{width:18px;height:18px;flex-shrink:0}.range-controls button:hover:not(:disabled){background:#548dff26;color:#edf4ff}.range-controls button:active:not(:disabled){background:#548dff40;filter:none}.range-controls button:focus-visible{outline:2px solid #82b1ff;outline-offset:2px;z-index:1}.range-controls button:disabled{opacity:.3;cursor:default}.article-map-shell>.range-controls{position:absolute;right:8px;top:8px;z-index:4}#mini-range-slot{display:flex;justify-content:flex-end;padding:6px;border-bottom:1px solid #6398e326;background:#141c28}#mini-range-slot .range-controls{height:30px}#mini-range-slot .range-controls button{height:28px;min-width:50px}#mini-range-slot .range-current{min-width:32px}.family-cell .range-controls{position:static}@media(max-width:760px){.range-controls{height:38px}.range-controls button{height:36px;min-width:60px}.canvas-top h2{max-width:110px}}

/* Canonical domains, topic paths, three independent ranking dimensions. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.navigation-controls{margin:0 12px 8px;display:grid;gap:6px}.goal-picker{position:relative;display:block}.goal-picker select{appearance:none;width:100%;height:32px;background:#141d29;color:#bccfe9;border:1px solid #739cce32;padding:0 30px 0 10px;font:inherit;font-size:11px;cursor:pointer}.goal-picker>span:last-child{position:absolute;right:9px;top:9px;pointer-events:none;display:flex}.goal-picker svg{width:14px;height:14px;color:#8daacf}.goal-picker select:focus-visible{outline:2px solid #82b1ff;outline-offset:2px}.sort-switch{display:flex;gap:1px;border:1px solid #6b98d329;padding:2px;background:#141b26}.sort-switch button{display:flex;align-items:center;justify-content:center;gap:5px;flex:1;min-width:0;height:28px;padding:4px;font-size:10px;color:#8099ba}.sort-switch button svg{width:14px;height:14px}.sort-switch button[aria-pressed=true]{background:#284975;color:#d9e8ff}.sort-switch button:hover{color:#d9e8ff;background:#548dff20}.sort-switch button:focus-visible{outline:2px solid #82b1ff;outline-offset:1px}.path-label{font-size:9px;color:#7996bc}.path-stops{display:flex;gap:3px;flex-wrap:wrap;margin-top:4px}.path-stops button{font-size:9px;font-variant-numeric:tabular-nums;padding:3px 5px;background:#548dff13;border:1px solid #548dff22;color:#9cbdee}.path-stops button:hover{background:#548dff2b;color:#d9e8ff}.sort-status{font-size:9px;color:#8b9eb8;line-height:1.6}.tree .domain>.folder-children{margin-left:12px;padding-left:7px}.tree .topic>.folder-children{margin-left:12px;padding-left:7px}.tree .folder-number{width:auto;min-width:20px;font-size:10px;font-variant-numeric:tabular-nums}.tree .topic .folder-number{min-width:30px;font-size:9px}.tree .folder-button{font-size:11px;min-height:30px;gap:6px}.tree .domain-button{font-size:12px;font-weight:500}.tree .file-link{gap:6px;position:relative;align-items:center;padding:7px 6px;min-height:34px;font-size:10.5px}.tree .file-sequence{display:none}.tree .file-title{min-width:0;flex:1;white-space:normal;line-height:1.45}.tree .file-title::before{content:'';display:inline-block;width:4px;height:4px;background:currentColor;opacity:.45;margin-right:7px;vertical-align:2px}.tree .file-link .doc-level{font-size:8px;flex:0 0 auto;color:#b4a786;font-variant-numeric:tabular-nums}.tree .ranked-documents .file-link{display:grid;grid-template-columns:48px minmax(0,1fr) 24px;margin-bottom:2px}.tree .ranked-documents .file-sequence{display:block;font-size:8px;color:#95aaca;font-variant-numeric:tabular-nums}.tree .ranked-documents .file-title::before{display:none}.tree .ranked-documents .doc-level{text-align:right;color:#9abce9}.taxonomy-links{display:flex;gap:6px 18px;flex-wrap:wrap;margin-bottom:16px}.taxonomy-links a{font-size:12px}.tree .folder[data-depth="2"] .folder-button{background:rgb(var(--tree-color)/.11)}.tree .file-link[data-depth="3"]{background:rgb(var(--tree-color)/.10);border-left:2px solid rgb(var(--tree-color)/.46)}.tree .file-link.active{background:rgb(var(--tree-color)/.2)}

.tree .file-sequence{display:block;min-width:15px;font-size:9px;color:rgb(var(--tree-color)/.8);font-variant-numeric:tabular-nums}.tree .file-title::before{display:none}.card-heat{font-size:9px;color:#809bbb;margin-left:auto;margin-right:12px}

/* Exact directory-color palette from the user vault; appearance geometry unchanged. */
[data-depth="1"]{--tree-color:239 68 68}[data-depth="2"]{--tree-color:249 115 22}[data-depth="3"]{--tree-color:234 179 8}[data-depth="4"]{--tree-color:34 197 94}[data-depth="5"]{--tree-color:6 182 212}[data-depth="6"]{--tree-color:59 130 246}[data-depth="7"]{--tree-color:168 85 247}
.tree .folder[data-depth]>.folder-button,.tree .file-link[data-depth]{background-color:rgb(var(--tree-color)/.16);border-left-color:rgb(var(--tree-color))}.tree .folder[data-depth]>.folder-button:hover,.tree .file-link[data-depth]:hover,.tree .file-link[data-depth].active{background-color:rgb(var(--tree-color)/.26)}

/* Latest user decision: all map cards are width:height = 4:3. */
.graph-node.document-card,.article-graph .graph-node.document-card{width:256px;height:192px;aspect-ratio:4/3;padding:14px;gap:8px}.document-card .card-header{height:14px;min-height:14px}.document-card .card-body{padding-top:0;gap:6px}.graph-node.document-card strong.card-title{font-size:calc(19px * var(--card-scale,1));line-height:1.28;max-height:2.56em;-webkit-line-clamp:2;flex-shrink:0}.graph-node.document-card.long-title strong.card-title{font-size:calc(17px * var(--card-scale,1))}.document-card .card-summary{font-size:calc(12px * var(--card-scale,1));line-height:1.5;max-height:3em}.document-card .card-footer{min-height:18px;padding-top:6px;font-size:9px}.graph-overview .graph-node.document-card strong.card-title{font-size:calc(16px * var(--label-scale,1));line-height:1.3;max-height:3.9em;-webkit-line-clamp:3}.mini-graph .graph-node.document-card{width:160px;height:120px;padding:8px;gap:0}.mini-graph .graph-node.document-card strong.card-title,.mini-graph.graph-overview .graph-node.document-card strong.card-title,.mini-graph .graph-node.document-card.long-title strong.card-title{font-size:calc(16px * var(--card-scale,1));line-height:1.3;max-height:3.9em;-webkit-line-clamp:3}


/* V4.1 directory alignment: border | 8px inset | 14px symbol | 8px | ordinal | 8px | title. */
.tree .directory-row{display:grid;grid-template-columns:14px var(--directory-number-width,24px) minmax(0,1fr);column-gap:8px;align-items:start;padding:6px 8px;min-height:32px;line-height:18px;text-align:left}
.tree .domain>.directory-row{--directory-number-width:var(--number-width-1,16px)}
.tree .topic>.directory-row{--directory-number-width:var(--number-width-2,16px)}
.tree .directory-row.file-link{--directory-number-width:var(--number-width-3,24px);grid-template-columns:14px var(--directory-number-width) minmax(0,1fr) 20px}
.tree .directory-symbol{display:grid;place-items:center;width:14px;height:18px;align-self:start}
.tree .directory-symbol svg{width:14px;height:14px;margin:0;flex-shrink:0}
.tree .folder-number.directory-number,.tree .file-sequence.directory-number{display:block;min-width:0;width:100%;font-size:10px;font-weight:400;line-height:18px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;align-self:start}
.tree .folder-title,.tree .file-title{min-width:0;line-height:18px;white-space:normal;overflow-wrap:anywhere;text-align:left}
.tree .file-title::before{display:none}.tree .directory-row .doc-level{align-self:start;line-height:18px;text-align:right;min-width:0}
.tree .ranked-documents .directory-row.file-link{--directory-number-width:var(--number-width-ranked,48px);grid-template-columns:14px var(--directory-number-width) minmax(0,1fr) 20px}
.tree .ranked-documents .file-sequence.directory-number{font-size:9px}

/* V4.2 optical spacing: measure real marker text; avoid empty ordinal tracks. */
.tree .directory-row{column-gap:4px;padding-left:6px;padding-right:6px}
