/* =========================
 * 体系图谱专用样式
 * ========================= */
.lingxyh-spider-lines line.is-focus{stroke:#dd333380;stroke-width:.35}

.lingxyh-graph-info{    
    position: absolute;
    z-index: 20;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(88%, 290px);
    max-height: 250px;
    min-height: 190px;
    border-radius: 12px;
    padding: 16px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .3);
    background: #333;
    color: #999;
    border: 2px solid #aaa;
}

.lingxyh-graph-info p{margin:0 0 12px}

.lingxyh-graph-info p:last-child{margin-bottom:0}

.lingxyh-graph-modal{overflow:visible}

.lingxyh-graph-serial{position:absolute;left:0px;top:0px;z-index:15;color:#506e9e;font-weight:700;display:flex;align-items:center;gap:5px;color: #ddd;}
.lingxyh-graph-refresh{border:0;background:transparent;padding:0px;cursor:pointer;font-size:16px;line-height:1;transition:transform .5s cubic-bezier(.2,.68,.2,1)}
.lingxyh-graph-refresh:hover{transform:rotate(160deg)}
.lingxyh-graph-collapse-all{
    border:2px solid #ddd;
    background:#fff;
    color:#333;
    border-radius:6px;
    padding:1px 7px;
    cursor:pointer;
    font-size:12px;
    transform:translateY(0) scale(1);
    transition:background-color .5s cubic-bezier(.2,.68,.2,1),border-color .5s cubic-bezier(.2,.68,.2,1),color .5s cubic-bezier(.2,.68,.2,1),transform .5s cubic-bezier(.2,.68,.2,1),opacity .5s ease;
}
.lingxyh-graph-collapse-all[hidden]{display:none!important}
.lingxyh-graph-collapse-all:hover{
    background:#dd3333;
    color:#fff;
    border-color:#666;
    transform:translateY(-1px) scale(1.025);
}

.lingxyh-spider.is-dim .lingxyh-spider-node:not(.is-focus),
.lingxyh-spider.is-dim .lingxyh-spider-center{opacity:.2;filter:blur(1px)}

.lingxyh-spider.is-dim .lingxyh-spider-center.is-focus{opacity:1;filter:none;transform:translate(-50%,-50%) scale(1.12);background:#dd3333;z-index:8}

.lingxyh-spider.is-dim .lingxyh-spider-lines line:not(.is-focus){opacity:.18}
.lingxyh-spider.is-dim .lingxyh-spider-cycle-arrow-guide:not(.is-focus) + .lingxyh-spider-cycle-curve{opacity:.18}
.lingxyh-spider.lingxyh-graph-independent-mode.is-dim .lingxyh-spider-cycle-arrow-guide.is-independent-fixed-backlink,
.lingxyh-spider.lingxyh-graph-independent-mode.is-dim .lingxyh-spider-cycle-arrow-guide.is-independent-fixed-backlink + .lingxyh-spider-cycle-curve{opacity:1}

.lingxyh-graph-overlay[hidden]{display:none!important}


.lingxyh-graph-overlay{
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgb(0 0 0 / 50%);
    backdrop-filter: blur(10px);
}

.lingxyh-graph-modal{
    margin: auto;
    overflow: visible;
    background: hwb(0deg 0% 100% / 80%);
    border: 1px solid #333;
    box-shadow: 0 10px 15px rgb(0 0 0 / 50%);
    backdrop-filter: blur(50px);
    -webkit-backdrop-filter: blur(50px);
    position: fixed;
    top: 5vh;
    bottom: 5vh;
    left: 50%;
    width: min(1000px, calc(100% - 30px));
    transform: translateX(-50%);
    padding: 30px 20px;
    border-radius: 20px;
    color: #333;
    display: flex;
    flex-direction: column;
}

.lingxyh-graph-close{
    position: absolute;
    right: 0;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    font-size: 32px;
    cursor: pointer;
    color: #ddd;
    margin: 15px 80px 0 0;
}

.lingxyh-graph-close:hover {
    color: #dd3333b3;
}

.lingxyh-graph-loading{text-align:center;padding:100px 0;color: #ddd;}

.lingxyh-graph-title{text-align:center;font-size:20px;font-weight:700;color: #ddd;}

.lingxyh-spider{
    position: relative;
    width: min(820px, calc(100% - 30px));
    height: calc(100vh - 180px);
    margin: 15px auto;
}

@media (max-height: 700px) {
    .lingxyh-spider{
    height: calc(100vh - 170px);
    }
}
@media (max-height: 600px) {
    .lingxyh-spider{
    height: calc(100vh - 160px);
    }
}

@media (max-height: 500px) {
    .lingxyh-spider{
    height: calc(100vh - 150px);
    }
}
@media (max-height: 400px) {
    .lingxyh-spider{
        min-height: calc(100vh - 140px);
        height: 100%;
    }
        .lingxyh-graph-modal {
        width: 100%;
        height: 100%;
        border-radius: 0;
    }
}

/* 图谱采用小型地图式交互：拖动空白区域，使用滚轮缩放。 */
.lingxyh-spider{overflow:hidden;touch-action:none;cursor:auto;--lingxyh-map-scale:1;--lingxyh-map-x:0px;--lingxyh-map-y:0px}
.lingxyh-spider.is-panning{cursor:auto}

.lingxyh-spider-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;transform:translate(var(--lingxyh-map-x),var(--lingxyh-map-y)) scale(var(--lingxyh-map-scale));transform-origin:50% 50%;transition:transform .12s ease-out}

.lingxyh-spider-lines line{fill:none;stroke:#ccc;stroke-width:.35;marker-end:url(#lingxyh-arrow-forward)}
.lingxyh-spider-lines marker path{fill:#ccc}
.lingxyh-spider-lines line.is-focus{marker-end:url(#lingxyh-arrow-forward-focus)}
.lingxyh-spider-lines #lingxyh-arrow-forward-focus path,
.lingxyh-spider-lines #lingxyh-arrow-reverse path{fill:#dd3333}
.lingxyh-spider-lines line.is-reverse{marker-end:none;marker-start:url(#lingxyh-arrow-reverse)}
.lingxyh-spider-lines .lingxyh-spider-cycle-arrow-guide,
.lingxyh-spider-lines .lingxyh-spider-cycle-arrow-guide.is-focus,
.lingxyh-spider.is-dim .lingxyh-spider-lines .lingxyh-spider-cycle-arrow-guide.is-focus{stroke:transparent!important;stroke-width:.5;stroke-dasharray:none}
.lingxyh-spider-lines .lingxyh-spider-cycle-curve{fill:none;stroke:#a45d5d;stroke-width:.5;stroke-dasharray:1.2 1.2;marker-start:none;marker-end:none}
.lingxyh-spider-lines .lingxyh-spider-cycle-arrow-guide.is-focus + .lingxyh-spider-cycle-curve{stroke:#dd3333;stroke-width:.5}

.lingxyh-spider-center,
.lingxyh-spider-node{position:absolute;transform:translate(-50%,-50%) scale(var(--lingxyh-map-scale));transform-origin:center;border:0;cursor:pointer;line-height:1.35;writing-mode:horizontal-tb;text-orientation:mixed;white-space:nowrap}
.lingxyh-spider-center,.lingxyh-spider-node{cursor:grab}
.lingxyh-spider.is-node-dragging .lingxyh-spider-center,.lingxyh-spider.is-node-dragging .lingxyh-spider-node{cursor:grabbing}

.lingxyh-spider-center{
    left: 50%;
    top: 50%;
    z-index: 2;
    width: 80px;
    height: 80px;
    box-sizing: border-box;
    border-radius: 50%;
    padding: 0;
    font-weight: 700;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1.25;
    white-space: normal;
    overflow: hidden;
    background: #000000;
    color: #ffffff;
    border: 5px solid #eee;
}
.lingxyh-spider-center.is-expanded{
    background: #000000;
    color: #eee;
    border: 5px solid #d33;
}
.lingxyh-spider-center.is-focus{background:#8d1e1e!important;color:#fff!important}

.lingxyh-spider-node{
    z-index: 3;
    max-width: 130px;
    border-radius: 12px;
    padding: 5px 10px;
    background: #ccc;
    color: #333;
    font-size: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
    border: 1px solid #eee;
}
.lingxyh-spider-node:not(.lingxyh-spider-field):not(.lingxyh-spider-parent-field){
    width: 58px;
    height: 58px;
    max-width: 58px;
    box-sizing: border-box;
    padding: 4px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    white-space: normal;
    text-align: center;
    background: #eee;
    color: #555;
    border: 2px solid #888;
}
.lingxyh-spider-node:not(.lingxyh-spider-field):not(.lingxyh-spider-parent-field) .lingxyh-graph-node-label{line-height:1.2;overflow:hidden;display:block;font-weight: bold;}
.lingxyh-spider-node:not(.lingxyh-spider-field):not(.lingxyh-spider-parent-field) .lingxyh-graph-node-label{max-height:2.4em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;word-break:break-all}

.lingxyh-graph-expand-state{display:block;margin-top:2px;font-size:10px;line-height:1;color:#7a858f;font-weight:400}
.lingxyh-spider-reference[data-expand-state="unexpanded"] .lingxyh-graph-expand-state{color:#b96b19}
.lingxyh-spider-reference[data-expand-state="loading"] .lingxyh-graph-expand-state{color:#315b95}
.lingxyh-spider-reference[data-expand-state="expanded"] .lingxyh-graph-expand-state{color:#2f7d43}
.lingxyh-spider-reference[data-expand-state="cycle"],.lingxyh-spider-reference[data-expand-state="error"]{opacity:.72}

.lingxyh-spider-reference[data-expand-state="expanded"],
.lingxyh-spider-reference[data-expand-state="in-map"],
.lingxyh-spider-reference[data-expand-state="full"]{
    width: 58px;
    height: 58px;
    max-width: 58px;
    box-sizing: border-box;
    padding: 4px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    white-space: normal;
    background: #000 !important;
    color: #eee !important;
    font-weight: 700;
    border: 3px solid #eee !important;
}

.lingxyh-spider-reference[data-expand-state="in-map"],.lingxyh-spider-reference[data-expand-state="full"]{background:#d33;border-color:#d33}
.lingxyh-spider-reference[data-expand-state="expanded"] .lingxyh-graph-node-label,.lingxyh-spider-reference[data-expand-state="in-map"] .lingxyh-graph-node-label,.lingxyh-spider-reference[data-expand-state="full"] .lingxyh-graph-node-label{line-height:1.2;overflow:hidden;display:block}

.lingxyh-spider-node:hover,
.lingxyh-spider-node.is-focus{
    color: #fff !important;
    transform: translate(-50%, -50%) scale(calc(var(--lingxyh-map-scale)* 1.16));
    z-index: 8;
    background: #dd3333 !important;
    box-shadow: 0 2px 5px rgb(0 0 0 / 15%);
    border: 2px solid #888;
}

.lingxyh-graph-has-image,.lingxyh-spider-reference.lingxyh-graph-has-image{position:absolute;isolation:isolate;background:transparent!important;overflow:visible}
.lingxyh-graph-has-image .lingxyh-graph-node-photo,.lingxyh-graph-has-image .lingxyh-graph-image-overlay{position:absolute;inset:0;border-radius:50%;pointer-events:none}
.lingxyh-graph-has-image .lingxyh-graph-node-photo{z-index:-2;background-position:center;background-size:cover;background-repeat:no-repeat}
.lingxyh-graph-has-image .lingxyh-graph-image-overlay{z-index:-1;background:rgba(221,51,51,0);transition:background .18s ease}
.lingxyh-graph-has-image:hover .lingxyh-graph-image-overlay{background:rgba(221,51,51,.5)}
.lingxyh-graph-has-image:hover,.lingxyh-graph-has-image.is-focus{background:transparent!important}
.lingxyh-graph-has-image .lingxyh-graph-node-label{position:relative;z-index:1;color:#fff}
.lingxyh-graph-has-image.lingxyh-graph-name-center .lingxyh-graph-node-photo{filter:blur(1px);transform:scale(1.06)}
.lingxyh-graph-name-center .lingxyh-graph-node-label{position:relative;z-index:1;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.9)}
.lingxyh-graph-name-below{overflow:visible}
.lingxyh-graph-name-below .lingxyh-graph-node-label{position:absolute!important;z-index:1;top:calc(100% + 5px);left:50%;width:110px;max-height:2.4em!important;transform:translateX(-50%);color:#fff;text-shadow:0 1px 3px #000;text-align:center}
.lingxyh-graph-name-below .lingxyh-graph-expand-state{position:absolute;top:calc(100% + 34px);left:50%;transform:translateX(-50%)}

.lingxyh-spider-reference{    
    background: #444 !important;
    color: #ddd !important;
    border: 2px solid #666 !important;
}

@media(max-width:1030px){
	.lingxyh-graph-close{
        margin: 15px 40px 0 0;
	}
}
@media(max-width:950px){
	.lingxyh-graph-close{
        margin: 15px 20px 0 0;
	}
}
@media(max-width:768px){
	.lingxyh-graph-overlay{padding:0}
	.lingxyh-graph-modal{width:100%;height:100%;border-radius:0}
	.lingxyh-spider{
        width: 100%;
        min-height: calc(100vh - 140px);
        height: 100%;
	}
	.lingxyh-graph-close{
        margin: 15px 10px 0 0;
	}
}

.lingxyh-spider-center:hover{    
    background: #d33 !important;
    color: #fff !important;
    transform: translate(-50%, -50%) scale(calc(var(--lingxyh-map-scale)* 1.16));
    z-index: 8;
    border: 5px solid #eee;
}
.lingxyh-spider-center.is-focus,
.lingxyh-spider-center.is-focus:hover{background:#8d1e1e!important;color:#fff!important}

.lingxyh-spider.is-dim .lingxyh-spider-node.is-focus{opacity:1;filter:none;background:#dd3333!important;color:#fff!important;transform:translate(-50%,-50%) scale(calc(var(--lingxyh-map-scale) * 1.22));z-index:12;border: 2px solid #888;}
.lingxyh-spider.is-dim .lingxyh-spider-center.is-focus{
    opacity: 1;
    filter: none;
    background: #eee !important;
    color: #000000 !important;
    transform: translate(-50%, -50%) scale(calc(var(--lingxyh-map-scale)* 1.22));
    z-index: 12;
    border: 5px solid #d33;
}
.lingxyh-spider.is-dim .lingxyh-spider-reference.is-focus{background:#ef8b28!important;color:#fff!important}
.lingxyh-spider.is-dim .lingxyh-spider-lines line.is-focus{opacity:1;stroke:#dd3333;stroke-width:.35}
.lingxyh-spider.is-dim .lingxyh-spider-lines .lingxyh-spider-cycle-arrow-guide.is-focus{stroke-width:.5}
.lingxyh-spider.is-dim .lingxyh-spider-lines .lingxyh-spider-cycle-arrow-guide.is-focus + .lingxyh-spider-cycle-curve{opacity:1;stroke:#dd3333;stroke-width:.5}

.lingxyh-spider-parent-field{background:#999;color:#333;font-weight:700;border:1px solid #eee;font-size:13px;padding:7px 12px}
.lingxyh-graph-parent-controls{position:absolute;left:0px;top:30px;z-index:15;display:flex;gap:5px;width: 40px;flex-wrap:wrap}
.lingxyh-graph-parent-toggle{
    border:2px solid #d33;
    border-radius:50%;
    background:#000;
    color:#fff;
    font-size:11px;
    padding:0;
    cursor:pointer;
    height:40px;
    width:40px;
    font-weight:bold;
    transform:scale(1);
    transition:background-color .5s cubic-bezier(.2,.68,.2,1),border-color .5s cubic-bezier(.2,.68,.2,1),color .5s cubic-bezier(.2,.68,.2,1),transform .5s cubic-bezier(.2,.68,.2,1),opacity .5s ease;
}

.lingxyh-graph-parent-toggle.is-collapsed{
    background: #000000;
    color: #ffffff;
    border-color: #eee;
}

.lingxyh-spider-node.is-parent-muted{opacity:.18!important;filter:grayscale(1)}
.lingxyh-spider-lines line.is-parent-muted{opacity:.14!important}
.lingxyh-spider-lines .lingxyh-spider-cycle-arrow-guide.is-parent-muted + .lingxyh-spider-cycle-curve{opacity:.14!important}
.lingxyh-spider-node.is-route-muted{opacity:.18!important;filter:grayscale(1)}
.lingxyh-spider-lines line.is-route-muted{opacity:.14!important}
.lingxyh-spider-lines .lingxyh-spider-cycle-arrow-guide.is-route-muted + .lingxyh-spider-cycle-curve{opacity:.14!important}
.lingxyh-spider.lingxyh-graph-independent-mode .lingxyh-spider-lines .lingxyh-spider-cycle-arrow-guide.is-independent-fixed-backlink,
.lingxyh-spider.lingxyh-graph-independent-mode .lingxyh-spider-lines .lingxyh-spider-cycle-arrow-guide.is-independent-fixed-backlink + .lingxyh-spider-cycle-curve{opacity:1!important;filter:none!important}
.lingxyh-spider.lingxyh-graph-independent-mode .lingxyh-spider-node.is-independent-fixed-relation,
.lingxyh-spider.lingxyh-graph-independent-mode .lingxyh-spider-lines line.is-independent-fixed-relation{opacity:1!important;filter:none!important}
.lingxyh-graph-expanded-only{flex:0 0 40px;width:40px;height:40px;border:2px solid #eee;border-radius:50%;background:#000;color:#fff;font-size:11px;padding:0;cursor:pointer;font-weight:bold}
.lingxyh-graph-expanded-only:hover{border:2px solid #eee;background:#d33;color:#fff}
.lingxyh-graph-expanded-only.is-active{background:#000;color:#fff;border:2px solid #d33}
.lingxyh-graph-duplicate-expand{border:1px solid #a00;border-radius:4px;padding:6px 12px;background:#d33!important;color:#fff!important;cursor:not-allowed;opacity:1!important}

.lingxyh-graph-name{
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 10px;
}

.lingxyh-graph-desc{
    text-indent: 2em; 
    max-height: 180px; 
    overflow: auto;
}

.lingxyh-graph-info .x-img{
    margin: 0 auto -4px !important;
}
.lingxyh-graph-info .lingxyh-graph-name .x-img{
    width: 20px !important;
    height: 20px !important;
}

.lingxyh-graph-read-post{
    position: absolute;
    right: 12px;
    top: 12px;
    padding: 5px 9px;
    border-radius: 6px;
    background: #ccc;
    color: #111 !important;
    text-decoration: none;
    font-size: 13px;
    text-indent: 0;
    border: 1px solid #ddd;
}
.lingxyh-graph-read-post:hover{
    background: #d33;
    color: #fff !important;
    border: 1px solid #888;
}

.lingxyh-graph-info:has(.lingxyh-graph-read-post) .lingxyh-graph-name{padding-right:86px}
.lingxyh-graph-node-choice{min-height:190px;overflow:visible}

.lingxyh-graph-node-choice .lingxyh-graph-desc{ 
    overflow: auto;
    max-height: 170px;
}

.lingxyh-graph-node-choice .lingxyh-graph-name{padding-right:0!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lingxyh-graph-choice-serial{font-size:12px;font-weight:unset;color:#666;margin-top: -10px;}
.lingxyh-graph-choice-actions{position:absolute;left:calc(100% + 10px);top:0;display:flex;flex-direction:column;gap:10px}

.lingxyh-graph-choice-actions button,
.lingxyh-graph-node-choice .lingxyh-graph-read-post{
    position: static;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 45px;
    height: 45px;
    box-sizing: border-box;
    border: 0;
    border-radius: 50%;
    padding: 5px;
    background: #ccc;
    color: #111 !important;
    text-decoration: none;
    font-size: 11px;
    line-height: 1.15;
    cursor: pointer;
    text-indent: 0;
    text-align: center;
    border: 3px solid #666;
}

.lingxyh-graph-choice-actions button:hover,
.lingxyh-graph-node-choice .lingxyh-graph-read-post:hover{
    background: #d33;
    color: #fff !important;
}

.lingxyh-graph-choice-actions .lingxyh-graph-branch-full{
    background:#d33;
    cursor:not-allowed;
    opacity:1
    color: #fff !important;
}
.lingxyh-graph-choice-loading{
    padding:24px 0;
    text-align:center;
    color:#999;
    font-weight:bold;
}

@media(max-width:440px){.lingxyh-graph-choice-actions{position:absolute;right: -210%;top:calc(100% + 10px);transform:translateX(-50%);margin:0;width:auto;flex-direction:row}}

@keyframes lingxyh-graph-circle-rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.lingxyh-spider-center,.lingxyh-spider-node:not(.lingxyh-spider-field):not(.lingxyh-spider-parent-field){isolation:isolate;overflow:visible}
.lingxyh-spider-center.is-rotating::after,.lingxyh-spider-node:not(.lingxyh-spider-field):not(.lingxyh-spider-parent-field).is-rotating::after{content:"";position:absolute;inset:-11px;border-radius:50%;z-index:-1;background:url("circle.png") center/cover no-repeat;animation:lingxyh-graph-circle-rotate 3s linear infinite}
.lingxyh-spider .lingxyh-graph-has-image:hover,.lingxyh-spider.is-dim .lingxyh-graph-has-image.is-focus{background:transparent!important}

/* 图片模式的节点样式特意与字段和路径线保持隔离。 */
.lingxyh-graph-image-mode .lingxyh-spider-center,
.lingxyh-graph-image-mode .lingxyh-spider-node:not(.lingxyh-spider-field):not(.lingxyh-spider-parent-field){color:#fff}
.lingxyh-graph-image-mode .lingxyh-spider-center{color:#fff!important}
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="unexpanded"]{border:3px solid #ef8b28!important}
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="expanded"]{border:3px solid #d33!important}
.lingxyh-graph-image-mode .lingxyh-spider-own:not(.lingxyh-graph-has-image),
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="cycle"]:not(.lingxyh-graph-has-image),
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="error"]:not(.lingxyh-graph-has-image),
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="in-map"]:not(.lingxyh-graph-has-image),
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="full"]:not(.lingxyh-graph-has-image){background:#000!important;color:#fff!important;border:3px solid #ccc!important}
.lingxyh-graph-image-mode .lingxyh-spider-own:not(.lingxyh-graph-has-image)::before,
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="cycle"]:not(.lingxyh-graph-has-image)::before,
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="error"]:not(.lingxyh-graph-has-image)::before,
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="in-map"]:not(.lingxyh-graph-has-image)::before,
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="full"]:not(.lingxyh-graph-has-image)::before{content:"";position:absolute;inset:0;border-radius:50%;z-index:0;pointer-events:none;background:transparent}
.lingxyh-graph-image-mode .lingxyh-spider-own:not(.lingxyh-graph-has-image):hover,
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="cycle"]:not(.lingxyh-graph-has-image):hover,
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="error"]:not(.lingxyh-graph-has-image):hover,
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="in-map"]:not(.lingxyh-graph-has-image):hover,
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="full"]:not(.lingxyh-graph-has-image):hover{background:#000!important}
.lingxyh-graph-image-mode .lingxyh-spider-own:not(.lingxyh-graph-has-image):hover::before,
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="cycle"]:not(.lingxyh-graph-has-image):hover::before,
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="error"]:not(.lingxyh-graph-has-image):hover::before,
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="in-map"]:not(.lingxyh-graph-has-image):hover::before,
.lingxyh-graph-image-mode .lingxyh-spider-reference[data-expand-state="full"]:not(.lingxyh-graph-has-image):hover::before{background:#dc323280}
.lingxyh-graph-image-mode .lingxyh-spider-own:not(.lingxyh-graph-has-image) .lingxyh-graph-node-label,
.lingxyh-graph-image-mode .lingxyh-spider-reference:not(.lingxyh-graph-has-image) .lingxyh-graph-node-label,
.lingxyh-graph-image-mode .lingxyh-spider-reference:not(.lingxyh-graph-has-image) .lingxyh-graph-expand-state{position:relative;z-index:1}

.lingxyh-graph-refresh .dashicons{
    width: 18px;
    height: 18px;
    font-size: 18px;
    vertical-align: -18%;
    transition:color .46s cubic-bezier(.2,.68,.2,1);
    color: #ddd;
}

.lingxyh-graph-refresh .dashicons:hover{
    color: #d33;
}

.lingxyh-graph-parent-toggle:hover {
    border-color:#eee;
    background:#d33;
    color:#fff;
    transform:scale(1.07);
}



/* 体系图谱正式容器；不修改 WordPress 页面级 html/body。 */
.lingxyh-system-graph{position:relative;width:100%;height:100%;box-sizing:border-box;padding:12px;background:#111;overflow:hidden;font-family:Arial,"Microsoft YaHei",sans-serif}
.lingxyh-system-graph .lingxyh-graph-canvas{position:relative;width:100%;height:100%;overflow:hidden;border:1px solid #333;border-radius:16px;background:#181818}
.lingxyh-system-graph .lingxyh-spider{width:100%;height:100%;min-height:0;margin:0;overflow:hidden}
.lingxyh-system-graph .lingxyh-graph-loading{position:absolute;left:50%;top:50%;z-index:30;transform:translate(-50%,-50%);padding:0;color:#aaa}
.lingxyh-system-graph .lingxyh-graph-title,
.lingxyh-system-graph .lingxyh-system-graph-meta,
.lingxyh-system-graph .lingxyh-system-graph-view-controls,
.lingxyh-system-graph .lingxyh-graph-info,
.lingxyh-system-graph .lingxyh-graph-close{display:none!important}
.lingxyh-system-graph .lingxyh-graph-serial{left:14px;top:14px;pointer-events:auto}
.lingxyh-system-graph .lingxyh-graph-parent-controls{left:14px;top:48px}

/* 固定 820×620 逻辑画布：窗口只改变可视区域，不压扁圆环。 */
.lingxyh-system-graph .lingxyh-spider-lines{
    inset:auto;
    left:calc(50% - 410px + var(--lingxyh-map-x));
    top:calc(50% - 310px + var(--lingxyh-map-y));
    width:820px;
    height:620px;
    transform:scale(var(--lingxyh-map-scale));
    transform-origin:50% 50%;
}
.lingxyh-system-graph .lingxyh-spider-lines line{
    fill:none;
    stroke:#ccc!important;
    stroke-width:1.7!important;
    stroke-linecap:round;
    vector-effect:none;
    transition:opacity .92s cubic-bezier(.2,.68,.2,1),stroke .92s cubic-bezier(.2,.68,.2,1);
}
.lingxyh-system-graph .lingxyh-spider-lines line.is-focus,
.lingxyh-system-graph .lingxyh-spider.is-path-mode .lingxyh-spider-lines line.is-path-focus{stroke:#d33!important;stroke-width:1.7!important;opacity:1}
.lingxyh-system-graph .lingxyh-spider-lines line.is-group-muted{opacity:.14!important}
.lingxyh-system-graph .lingxyh-spider-lines #lingxyh-system-arrow-forward path,
.lingxyh-system-graph .lingxyh-spider-lines #lingxyh-system-arrow-reverse path{fill:#ddd}
.lingxyh-system-graph .lingxyh-spider-lines #lingxyh-system-arrow-forward-focus path,
.lingxyh-system-graph .lingxyh-spider-lines #lingxyh-system-arrow-reverse-focus path{fill:#d33}

/* 路径前锋：红线和箭头共用同一条 rAF 时间轴。 */
.lingxyh-system-graph .lingxyh-system-flow-line{
    pointer-events:none!important;
    stroke:#d33!important;
    stroke-width:1.7!important;
    stroke-linecap:round;
    vector-effect:none;
    opacity:0;
    transition:none!important;
}

/* 体系节点尺寸与文字。 */
.lingxyh-system-graph .lingxyh-spider-node,
.lingxyh-system-graph .lingxyh-spider-center{
    transition:opacity .92s cubic-bezier(.2,.68,.2,1),filter .92s cubic-bezier(.2,.68,.2,1),background-color .92s cubic-bezier(.2,.68,.2,1),color .92s cubic-bezier(.2,.68,.2,1),border-color .92s cubic-bezier(.2,.68,.2,1),box-shadow .92s cubic-bezier(.2,.68,.2,1),transform 1.02s cubic-bezier(.2,.68,.2,1);
}
.lingxyh-system-graph .lingxyh-spider-node:not(.lingxyh-spider-field),
.lingxyh-system-graph .lingxyh-spider-center{overflow:visible}
.lingxyh-system-graph .lingxyh-spider-node:not(.lingxyh-spider-field){width:64px;height:64px;max-width:64px;padding:5px}
.lingxyh-system-graph .lingxyh-spider-center{width:82px;height:82px}
.lingxyh-system-graph .lingxyh-system-node-inner{display:flex;min-width:0;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;line-height:1.15;position:relative;z-index:2}
.lingxyh-system-graph .lingxyh-system-node-name{display:block;max-width:100%;font-weight:bold;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lingxyh-system-graph .lingxyh-system-node-subtitle{display:block;max-width:100%;margin-top:3px;font-size:9px;font-weight:400;line-height:1.05;color:#888;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .92s cubic-bezier(.2,.68,.2,1)}
.lingxyh-system-graph .lingxyh-graph-has-image .lingxyh-system-node-subtitle{color:#ddd;text-shadow:0 1px 3px #000}
.lingxyh-system-graph .lingxyh-spider-node.is-focus .lingxyh-system-node-subtitle,
.lingxyh-system-graph .lingxyh-spider-center.is-focus .lingxyh-system-node-subtitle,
.lingxyh-system-graph .lingxyh-spider-node:hover .lingxyh-system-node-subtitle,
.lingxyh-system-graph .lingxyh-spider-center:hover .lingxyh-system-node-subtitle{color:#fff!important}

/* 字段。 */
.lingxyh-system-graph .lingxyh-spider-node.lingxyh-spider-field{max-width:130px;min-width:44px;width:auto;height:auto;min-height:26px;padding:5px 10px;border-radius:12px;background:#999;color:#222;font-weight:700;border:1px solid #eee;white-space:nowrap}
.lingxyh-system-graph .lingxyh-spider-node.lingxyh-spider-field .lingxyh-graph-node-label{display:block;max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}
.lingxyh-system-graph .lingxyh-spider-node.lingxyh-spider-field.is-focus{background:#d33!important;color:#fff!important;transform:translate(-50%,-50%) scale(var(--lingxyh-map-scale))}
.lingxyh-system-graph .lingxyh-spider-node.lingxyh-spider-field.is-group-muted{opacity:.18!important;filter:grayscale(1)}

/* 未匹配 / 已匹配状态：沿用前面确认的原词条图谱颜色。 */
.lingxyh-system-graph .lingxyh-spider-node.lingxyh-spider-own:not(.lingxyh-spider-reference):not(.lingxyh-graph-has-image){background:#eee!important;color:#555!important;border:3px solid #888!important}
.lingxyh-system-graph .lingxyh-spider-reference[data-expand-state="unexpanded"]{background:#444!important;color:#ddd!important;border:3px solid #666!important}
.lingxyh-system-graph .lingxyh-spider-reference[data-expand-state="expanded"]{background:#000!important;color:#eee!important;border:3px solid #eee!important}
.lingxyh-system-graph .lingxyh-graph-image-mode .lingxyh-spider-own:not(.lingxyh-spider-reference):not(.lingxyh-graph-has-image){background:#eee!important;color:#555!important;border:3px solid #888!important}

/* 状态角标固定尺寸，不随展开边框或动画偏移。 */
.lingxyh-system-graph .lingxyh-system-node-status{position:absolute;right:-5px;top:-5px;z-index:6;display:flex;align-items:center;justify-content:center;width:18px;height:18px;box-sizing:border-box;border-radius:50%;border:2px solid #fff;background:#888;color:#fff!important;font-size:12px;font-weight:bold;line-height:1;transform:none}
.lingxyh-system-graph .lingxyh-system-node-status.is-research{background:#ef8b28;border-color:#fff;color:#fff!important}
.lingxyh-system-graph .lingxyh-system-node-status.is-doubt{background:#d33;border-color:#fff;color:#fff!important}

/* 高亮三级层次：只改变节点原有边框颜色，不额外叠加红色外圈。 */
.lingxyh-system-graph .lingxyh-spider.is-dim .lingxyh-spider-node:not(.is-focus),
.lingxyh-system-graph .lingxyh-spider.is-dim .lingxyh-spider-center:not(.is-focus){opacity:.2;filter:blur(.7px)}
.lingxyh-system-graph .lingxyh-spider.is-dim .lingxyh-spider-lines line:not(.is-focus):not(.lingxyh-system-flow-line){opacity:.18}
.lingxyh-system-graph .lingxyh-spider.is-dim .lingxyh-spider-node.is-focus{opacity:1;filter:none;background:#d33!important;color:#fff!important;transform:translate(-50%,-50%) scale(calc(var(--lingxyh-map-scale) * 1.07));z-index:10;border-color:#d33!important}
.lingxyh-system-graph .lingxyh-spider.is-dim .lingxyh-spider-reference.is-focus{background:#ef8b28!important;color:#fff!important}
.lingxyh-system-graph .lingxyh-spider.is-dim .lingxyh-spider-node.is-focus-origin{transform:translate(-50%,-50%) scale(calc(var(--lingxyh-map-scale) * 1.22));z-index:13;border-color:#d33!important;box-shadow:0 5px 18px #0009}
.lingxyh-system-graph .lingxyh-spider.is-dim .lingxyh-spider-center.is-focus{opacity:1;filter:none;background:#eee!important;color:#000!important;transform:translate(-50%,-50%) scale(calc(var(--lingxyh-map-scale) * 1.07));z-index:11;border-color:#d33!important}
.lingxyh-system-graph .lingxyh-spider.is-dim .lingxyh-spider-center.is-focus-origin{transform:translate(-50%,-50%) scale(calc(var(--lingxyh-map-scale) * 1.22));z-index:14;border-color:#d33!important;box-shadow:0 6px 20px #0009}
.lingxyh-system-graph .lingxyh-spider.is-dim .lingxyh-spider-center.is-focus-root{transform:translate(-50%,-50%) scale(calc(var(--lingxyh-map-scale) * 1.12));z-index:12;border-color:#d33!important;box-shadow:none}
.lingxyh-system-graph .lingxyh-spider.is-path-mode .lingxyh-spider-node.is-path-focus,
.lingxyh-system-graph .lingxyh-spider.is-path-mode .lingxyh-spider-center.is-path-focus{opacity:1;filter:none}

/* + / − 只控制展开；高亮时跟其它非主体元素一起柔和退后。 */
.lingxyh-system-graph .lingxyh-system-expand{position:absolute;z-index:7;display:grid;place-items:center;width:20px;height:20px;padding:0;border:2px solid #ddd;border-radius:50%;background:#111;color:#fff;font:700 16px/1 Arial,sans-serif;text-align:center;text-indent:0;box-sizing:border-box;cursor:pointer;transform:translate(-50%,-50%) scale(var(--lingxyh-map-scale));transform-origin:center;box-shadow:0 1px 5px #0008;transition:opacity .72s cubic-bezier(.2,.68,.2,1),background-color .5s ease,border-color .5s ease,transform .72s cubic-bezier(.2,.68,.2,1)}
.lingxyh-system-graph .lingxyh-system-expand.is-collapse{font-size:15px;border-color:#d33}
.lingxyh-system-graph .lingxyh-system-expand:hover{background:#d33;border-color:#fff}
.lingxyh-system-graph .lingxyh-spider.is-dim .lingxyh-system-expand,
.lingxyh-system-graph .lingxyh-spider.is-path-mode .lingxyh-system-expand{opacity:.18}

/* 动画性能：只提示浏览器预留合成层，不改变最终视觉。 */
.lingxyh-system-graph .lingxyh-spider-node,
.lingxyh-system-graph .lingxyh-spider-center,
.lingxyh-system-graph .lingxyh-system-expand{will-change:transform,opacity;backface-visibility:hidden}
.lingxyh-system-graph .lingxyh-spider-lines{will-change:transform}
.lingxyh-system-graph .lingxyh-system-flow-line{will-change:opacity}

/* 可见性切换：JS 逐帧控制 opacity / translate / scale，CSS 不再叠多套进入动画。 */
.lingxyh-system-graph .is-graph-hidden{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.lingxyh-system-graph .is-graph-leaving{pointer-events:none!important}
.lingxyh-system-graph .lingxyh-spider-lines line.is-graph-hidden{opacity:0!important;visibility:hidden!important}

/* 右上“跳过”直接复用左侧圆形控制按钮视觉。 */
.lingxyh-system-graph .lingxyh-system-animation-toggle{position:absolute;right:14px;top:14px;left:auto;z-index:18;display:grid;place-items:center}
/* 默认：红边黑底；开启跳过：白边黑底。hover 继续沿用左侧按钮的红底白边反馈。 */
.lingxyh-system-graph .lingxyh-system-animation-toggle.is-active{background:#000;color:#fff;border-color:#eee}

/* 图片节点名称位置。 */
.lingxyh-system-graph .lingxyh-graph-name-below .lingxyh-system-node-inner{position:absolute;z-index:2;top:calc(100% + 5px);left:50%;width:110px;height:auto;transform:translateX(-50%);color:#fff;text-shadow:0 1px 3px #000;text-align:center}
.lingxyh-system-graph .lingxyh-graph-name-below .lingxyh-system-node-inner .lingxyh-graph-node-label{position:static!important;top:auto;left:auto;width:auto;max-height:none!important;transform:none;color:inherit;text-shadow:inherit;text-align:center}
.lingxyh-system-graph .lingxyh-graph-name-below .lingxyh-system-node-subtitle{color:#ddd}

/* 跳过动画：只取消表现层，不改变最终交互结果。 */
.lingxyh-system-graph .lingxyh-spider.is-skip-animation *,
.lingxyh-system-graph .lingxyh-spider.is-skip-animation,
.lingxyh-system-graph .lingxyh-spider.is-skip-animation .lingxyh-spider-lines,
.lingxyh-system-graph .lingxyh-spider.is-skip-animation .lingxyh-spider-lines line{transition:none!important;animation-duration:.001ms!important;animation-delay:0s!important}

/* =========================
 * 当前节点高亮 + 旋转环
 * ========================= */
/* 无匹配词条：高亮只改变内部背景，不改变原来的灰色边框。 */
.lingxyh-system-graph .lingxyh-spider.is-dim .lingxyh-spider-node.lingxyh-system-node-unmatched.is-focus,
.lingxyh-system-graph .lingxyh-spider.is-dim .lingxyh-spider-node.lingxyh-system-node-unmatched.is-focus-origin{
    background:#d33!important;
    color:#fff!important;
    border-color:#888!important;
}

/* 当前点击节点沿用原词条图谱 is-rotating。
 * 图片模式下不能使用负 z-index，否则 isolation 会把旋转环压到节点背景后面；
 * 旋转环放在图片层之上、文字与状态角标之下，普通节点和根节点一致。 */
.lingxyh-system-graph .lingxyh-spider-center.is-rotating::after,
.lingxyh-system-graph .lingxyh-spider-node:not(.lingxyh-spider-field):not(.lingxyh-spider-parent-field).is-rotating::after{
    content:"";
    position:absolute;
    width:160%;
    height:160%;
    left:-30%;
    top:-30%;
    border-radius:50%;
    z-index:4;
    background:url("data:image/png;base64,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") center/100% 100% no-repeat;
    animation:lingxyh-graph-circle-rotate 3s linear infinite;
    transform-origin:50% 50%;
    pointer-events:none;
}



/* 左侧字段分组按当前可见字段动态出现。 */
.lingxyh-system-graph .lingxyh-graph-parent-controls{
    gap:0;
}
.lingxyh-system-graph .lingxyh-graph-parent-controls > button{
    box-sizing:border-box;
    margin:0 0 5px;
}
.lingxyh-system-graph .lingxyh-graph-parent-controls > .lingxyh-graph-parent-toggle[data-parent-toggle]{
    flex:0 0 auto;
    min-height:40px;
    height:40px;
    overflow:hidden;
    opacity:1;
    transform:translateX(0) scale(1);
    transition:
        height .56s cubic-bezier(.2,.68,.2,1),
        min-height .56s cubic-bezier(.2,.68,.2,1),
        margin-bottom .56s cubic-bezier(.2,.68,.2,1),
        opacity .5s cubic-bezier(.2,.68,.2,1),
        transform .56s cubic-bezier(.2,.68,.2,1),
        background-color .5s cubic-bezier(.2,.68,.2,1),
        border-color .5s cubic-bezier(.2,.68,.2,1),
        color .5s cubic-bezier(.2,.68,.2,1);
}
.lingxyh-system-graph .lingxyh-graph-parent-controls > .lingxyh-graph-parent-toggle[data-parent-toggle].is-group-entering,
.lingxyh-system-graph .lingxyh-graph-parent-controls > .lingxyh-graph-parent-toggle[data-parent-toggle].is-group-leaving{
    min-height:0;
    height:0;
    margin-bottom:0;
    opacity:0;
    transform:translateX(-8px) scale(.84);
    pointer-events:none;
}
.lingxyh-system-graph .lingxyh-graph-parent-controls > .lingxyh-system-graph-path-toggle{
    margin-bottom:0;
    transition:background-color .5s cubic-bezier(.2,.68,.2,1),border-color .5s cubic-bezier(.2,.68,.2,1),color .5s cubic-bezier(.2,.68,.2,1),transform .5s cubic-bezier(.2,.68,.2,1),opacity .5s ease;
}


/* 悬浮测试设置模块由独立脚本注入，仅控制当前页面预览。 */
.lingxyh-system-graph .lingxyh-system-settings-toggle{
    position:absolute;
    right:27px;
    top:75px;
    left:auto;
    z-index:26;
    display:grid;
    place-items:center;
}
/* 设置与跳过是独立控件，使用相同尺寸并按画布右边缘对齐。 */
.lingxyh-system-graph .lingxyh-system-settings-toggle,
.lingxyh-system-graph .lingxyh-system-animation-toggle{width:40px;height:40px;box-sizing:border-box}
.lingxyh-system-graph .lingxyh-system-settings-toggle.is-open{
    border-color:#eee;
    background:#000;
    color:#fff;
}
.lingxyh-system-graph .lingxyh-system-settings-panel{
    position:absolute;
    right:27px;
    top:123px;
    z-index:25;
    width:260px;
    box-sizing:border-box;
    padding:12px;
    border:2px solid #555;
    border-radius:14px;
    background:#111e;
    box-shadow:0 12px 30px #0009;
    color:#ddd;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-8px) scale(.97);
    transform-origin:top right;
    transition:opacity .42s cubic-bezier(.2,.68,.2,1),transform .46s cubic-bezier(.2,.68,.2,1),visibility 0s linear .46s,border-color .42s ease;
}
.lingxyh-system-graph .lingxyh-system-settings-panel.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0) scale(1);
    transition-delay:0s;
}
.lingxyh-system-graph .lingxyh-system-setting-group{
    padding:0 0 11px;
    margin:0 0 11px;
    border-bottom:1px solid #444;
}
.lingxyh-system-graph .lingxyh-system-setting-group:last-child{
    padding-bottom:0;
    margin-bottom:0;
    border-bottom:0;
}
.lingxyh-system-graph .lingxyh-system-setting-title{
    display:block;
    margin:0 0 7px;
    color:#888;
    font-size:11px;
    font-weight:700;
    line-height:1.2;
}
.lingxyh-system-graph .lingxyh-system-setting-options{
    display:grid;
    gap:6px;
}
.lingxyh-system-graph .lingxyh-system-setting-options-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.lingxyh-system-graph .lingxyh-system-setting-options-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.lingxyh-system-graph .lingxyh-system-setting-option{
    min-width:0;
    height:32px;
    padding:0 6px;
    border:1px solid #555;
    border-radius:8px;
    background:#181818;
    color:#999;
    font-size:11px;
    font-weight:700;
    line-height:30px;
    white-space:nowrap;
    cursor:pointer;
    box-sizing:border-box;
    transition:background-color .42s cubic-bezier(.2,.68,.2,1),border-color .42s cubic-bezier(.2,.68,.2,1),color .42s cubic-bezier(.2,.68,.2,1),transform .42s cubic-bezier(.2,.68,.2,1),opacity .42s ease;
}
.lingxyh-system-graph .lingxyh-system-setting-option:hover{
    border-color:#aaa;
    color:#fff;
    transform:translateY(-1px);
}
.lingxyh-system-graph .lingxyh-system-setting-option.is-active{
    border-color:#d33;
    background:#d33;
    color:#fff;
}
.lingxyh-system-graph .lingxyh-spider.is-skip-animation ~ .lingxyh-system-settings-panel,
.lingxyh-system-graph .lingxyh-system-settings-panel{
    backdrop-filter:none;
}
@media (max-width:620px){
    .lingxyh-system-graph .lingxyh-system-settings-panel{right:23px;top:119px;width:min(260px,calc(100% - 33px))}
    .lingxyh-system-graph .lingxyh-system-settings-toggle{right:23px;top:71px}
}

/* 图片只占节点原背景区域；节点边框、状态角标、旋转环均保持在图片之上。 */
.lingxyh-system-graph .lingxyh-graph-has-image .lingxyh-graph-node-photo,
.lingxyh-system-graph .lingxyh-graph-has-image .lingxyh-graph-image-overlay{
    inset:0;
    width:100%;
    height:100%;
    box-sizing:border-box;
    border-radius:50%;
    clip-path:circle(50% at 50% 50%);
}
.lingxyh-system-graph .lingxyh-graph-has-image .lingxyh-graph-node-photo{
    z-index:0;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
}
.lingxyh-system-graph .lingxyh-graph-has-image .lingxyh-graph-image-overlay{z-index:1}
/* 圆形内部：图片作背景，名称仍在圆内。 */
.lingxyh-system-graph .lingxyh-graph-has-image.lingxyh-graph-name-inside .lingxyh-graph-node-photo{
    filter:none;
    transform:none;
}
/* 圆形内部＋模糊：仍只模糊背景图片，不影响文字、状态角标与边框。 */
.lingxyh-system-graph .lingxyh-graph-has-image.lingxyh-graph-name-center .lingxyh-graph-node-photo{
    filter:blur(1.6px);
    transform:scale(1.06);
}
/* 圆形下面：图片仍完整占圆形背景，名称移到节点下方。 */
.lingxyh-system-graph .lingxyh-graph-has-image.lingxyh-graph-name-below .lingxyh-graph-node-photo{
    filter:none;
    transform:none;
}
.lingxyh-system-graph .lingxyh-graph-has-image .lingxyh-system-node-inner{
    z-index:5;
}
.lingxyh-system-graph .lingxyh-graph-has-image .lingxyh-system-node-status{
    z-index:7;
}

/* 设置仅用于当前页面预览；项目增加后允许面板内部滚动，不挤压图谱。 */
.lingxyh-system-graph .lingxyh-system-settings-panel{
    max-height:calc(100% - 124px);
    overflow-x:hidden;
    overflow-y:auto;
    scrollbar-width:thin;
}
.lingxyh-system-graph .lingxyh-system-setting-note{
    margin:0 0 11px;
    padding:0 0 9px;
    border-bottom:1px solid #333;
    color:#666;
    font-size:10px;
    line-height:1.45;
}
.lingxyh-system-graph .lingxyh-system-setting-subtitle{
    display:block;
    margin:8px 0 6px;
    color:#666;
    font-size:10px;
    font-weight:700;
    line-height:1.2;
}
.lingxyh-system-graph .lingxyh-system-setting-title + .lingxyh-system-setting-subtitle{
    margin-top:0;
}



/* 图片模式：匹配词条图片优先，非图片模式和根节点高亮保持原规则。 */
/* 图片实际占据节点背景：默认边框仍沿用非图片状态，仅把背景让给图片。 */
.lingxyh-system-graph .lingxyh-spider.lingxyh-graph-image-mode .lingxyh-spider-node.lingxyh-system-node-unmatched.lingxyh-graph-has-image{
    background:transparent!important;
    color:#fff!important;
    border:3px solid #888!important;
}
.lingxyh-system-graph .lingxyh-spider.lingxyh-graph-image-mode .lingxyh-spider-node.lingxyh-system-node-matched.lingxyh-graph-has-image[data-expand-state="unexpanded"]{
    background:transparent!important;
    color:#fff!important;
    border:3px solid #666!important;
}
.lingxyh-system-graph .lingxyh-spider.lingxyh-graph-image-mode .lingxyh-spider-node.lingxyh-system-node-matched.lingxyh-graph-has-image[data-expand-state="expanded"]{
    background:transparent!important;
    color:#fff!important;
    border:3px solid #eee!important;
}
/* 点击后即使鼠标还停在节点上，也不再叠红色蒙层；高亮只通过边框表达。 */
.lingxyh-system-graph .lingxyh-spider.lingxyh-graph-image-mode .lingxyh-spider-node.lingxyh-graph-has-image.is-focus .lingxyh-graph-image-overlay{background:transparent!important}
.lingxyh-system-graph .lingxyh-spider.lingxyh-graph-image-mode.is-dim .lingxyh-spider-node.lingxyh-system-node-matched.lingxyh-graph-has-image.is-focus,
.lingxyh-system-graph .lingxyh-spider.lingxyh-graph-image-mode.is-dim .lingxyh-spider-node.lingxyh-system-node-matched.lingxyh-graph-has-image.is-focus-origin{
    background:transparent!important;
    color:#fff!important;
    border-width:3px!important;
    border-style:solid!important;
    border-color:#ef8b28!important;
}
.lingxyh-system-graph .lingxyh-spider.lingxyh-graph-image-mode.is-dim .lingxyh-spider-node.lingxyh-system-node-unmatched.lingxyh-graph-has-image.is-focus,
.lingxyh-system-graph .lingxyh-spider.lingxyh-graph-image-mode.is-dim .lingxyh-spider-node.lingxyh-system-node-unmatched.lingxyh-graph-has-image.is-focus-origin{
    background:transparent!important;
    color:#fff!important;
    border-width:3px!important;
    border-style:solid!important;
    border-color:#fff!important;
}

/* 旋转环直接内嵌，避免相对图片路径丢失。 */
.lingxyh-system-graph .lingxyh-spider-center.is-rotating .lingxyh-system-node-inner,
.lingxyh-system-graph .lingxyh-spider-node.is-rotating .lingxyh-system-node-inner{position:relative;z-index:5}


/* 条件设置项只在依赖条件成立后出现。 */
@keyframes lingxyh-system-setting-reveal{
    from{opacity:0;transform:translateY(-5px)}
    to{opacity:1;transform:translateY(0)}
}
.lingxyh-system-graph .lingxyh-system-setting-dependent{
    animation:lingxyh-system-setting-reveal .38s cubic-bezier(.2,.68,.2,1) both;
}
