.course-graph-wrap{border:1px solid #c5d8e5;border-radius:7px;background:var(--graph-page);overflow:hidden}.graph-switch{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px;padding:10px 12px;border:0;background:#f5f7fa;color:#526575}.legacy-graph-switch{display:none}.graph-switch span{color:#526575;font-size:12px}.course-graph-wrap .graph-switch .ant-btn-primary,.course-graph-wrap .graph-switch .ant-btn-primary *,.course-graph-wrap .graph-switch .ant-btn-primary:active,.course-graph-wrap .graph-switch .ant-btn-primary:focus,.course-graph-wrap .graph-switch .ant-btn-primary:hover,.course-graph-wrap .graph-switch .ant-btn-primary>i,.course-graph-wrap .graph-switch .ant-btn-primary>span{color:#fff!important;-webkit-text-fill-color:#fff!important;text-shadow:none}.theme-toggle{display:none!important}.theme-toggle:hover{border-color:#7ca9bf;color:#275876}.course-graph-canvas,.course-graph-three{height:846px;position:relative;background:linear-gradient(#fbfdff,#f3f9fd)}.course-graph-canvas{overflow:hidden;isolation:isolate;background-color:var(--graph-2d-bg);background-image:radial-gradient(var(--graph-2d-grid) 1px,transparent 0),linear-gradient(135deg,var(--graph-2d-bg),var(--graph-2d-bg-end));background-size:18px 18px,100% 100%;background-position:calc(var(--graph-parallax-x, 0px)*0.72) calc(var(--graph-parallax-y, 0px)*0.72),0 0;-ms-touch-action:none;touch-action:none;cursor:grab}.course-graph-canvas.is-panning{cursor:grabbing}.course-graph-canvas:after{content:"";position:absolute;inset:calc(var(--graph-parallax-y, 0px)*0.72) calc(var(--graph-parallax-x, 0px)*0.72);z-index:0;pointer-events:none;opacity:.24;background:repeating-conic-gradient(from 12deg,transparent 0deg 22deg,var(--graph-2d-arc) 22deg 23deg,transparent 23deg 58deg);-webkit-mask:radial-gradient(ellipse at center,transparent 0 210px,#000 211px 212px,transparent 213px 328px,#000 329px 330px,transparent 331px);mask:radial-gradient(ellipse at center,transparent 0 210px,#000 211px 212px,transparent 213px 328px,#000 329px 330px,transparent 331px);transition:inset .08s linear}.course-graph-canvas:before{display:none}.course-graph-canvas>canvas{position:relative;z-index:1;display:block;opacity:1!important;filter:none!important}.two-d-overlay{z-index:3;font-family:Microsoft YaHei,sans-serif}.two-d-overlay,.two-d-relations{position:absolute;inset:0;pointer-events:none}.two-d-relations{z-index:0;overflow:visible}.two-d-main-edge{filter:drop-shadow(0 1px 2px rgba(49,132,190,.18))}.two-d-energy-interface{filter:drop-shadow(0 0 4px currentColor);opacity:.84;pointer-events:none}.two-d-branch-edge{opacity:.72}.two-d-branch-junction{position:absolute;z-index:2;width:8px;height:8px;transform:translate(-50%,-50%);border:2px solid #fff;border-radius:50%;background:var(--module-color);box-shadow:0 0 0 1px var(--module-color),0 0 9px color-mix(in srgb,var(--module-color) 48%,transparent);pointer-events:none}.two-d-core{position:absolute;width:138px;height:138px;pointer-events:auto;cursor:pointer;transform:translate(-50%,-50%) translateY(calc(var(--node-lift,0px) + var(--node-float,0px))) scale(var(--node-scale,1));border:1px solid rgba(115,185,244,.75);border-radius:50%;background:radial-gradient(circle at 47% 40%,#fff 0 38%,#eef8ff 62%,#d9edfc 100%);box-shadow:0 0 0 6px rgba(139,202,250,.18),0 0 0 12px rgba(131,194,245,.22),0 0 25px rgba(91,168,239,.32),inset 0 0 22px rgba(109,183,245,.2);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;color:#214b70}.two-d-core:after,.two-d-core:before{content:"";position:absolute;border:1px solid rgba(129,195,247,.48);border-radius:50%;pointer-events:none}.two-d-core:before{inset:-20px;border-top-color:#3d87e8;border-right-color:#8a55df;border-bottom-color:#e67;border-left-color:#ed931e;box-shadow:0 0 12px rgba(100,174,239,.18)}.two-d-core:after{inset:-28px;border-color:rgba(174,218,249,.55);border-top-color:rgba(22,168,120,.76);border-right-color:rgba(138,85,223,.7)}.two-d-core-mark{width:44px;height:44px;margin-bottom:10px;background:linear-gradient(145deg,#58b0ff,#1674d0);-webkit-clip-path:polygon(50% 0,92% 24%,92% 76%,50% 100%,8% 76%,8% 24%);clip-path:polygon(50% 0,92% 24%,92% 76%,50% 100%,8% 76%,8% 24%);color:#fff;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-size:22px;filter:drop-shadow(0 5px 8px rgba(38,126,214,.32))}.two-d-core strong{max-width:128px;font-size:15px;line-height:1.3;text-align:center;white-space:nowrap}.two-d-core small{margin-top:5px;color:#527b9a;font-size:11px;line-height:1}.two-d-module{position:absolute;width:164px;height:52px;pointer-events:auto;cursor:pointer;transform:translate(-50%,-50%) translateY(calc(var(--node-lift,0px) + var(--node-float,0px))) scale(var(--node-scale,1));border:1.5px solid var(--module-color);border-radius:13px;background:linear-gradient(135deg,hsla(0,0%,100%,.98),color-mix(in srgb,var(--module-color) 14%,#fff));box-shadow:0 5px 14px color-mix(in srgb,var(--module-color) 24%,transparent);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;color:#294962;transition:box-shadow .2s ease,border-color .2s ease}.two-d-module.is-hovered{box-shadow:0 8px 20px color-mix(in srgb,var(--module-color) 34%,transparent)}.two-d-module.is-clicked{animation:two-d-module-press .26s ease-out both}.two-d-module.is-selected{border-width:2px;box-shadow:0 9px 24px color-mix(in srgb,var(--module-color) 40%,transparent),0 0 0 3px color-mix(in srgb,var(--module-color) 12%,transparent)}.two-d-module:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:var(--module-color);box-shadow:0 0 7px var(--module-color)}.two-d-module.module-G:after{left:50%;top:100%;transform:translate(-50%,-50%)}.two-d-module.module-T:after{left:0;top:50%;transform:translate(-50%,-50%)}.two-d-module.module-P:after{left:18%;top:0;transform:translate(-50%,-50%)}.two-d-module.module-D:after{left:82%;top:0;transform:translate(-50%,-50%)}.two-d-module.module-C:after{left:100%;top:50%;transform:translate(-50%,-50%)}.two-d-module-icon{width:30px;height:30px;margin-left:10px;border-radius:50%;background:color-mix(in srgb,var(--module-color) 12%,#fff);color:var(--module-color);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--module-color) 38%,transparent)}.two-d-module-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.two-d-module strong{margin-left:10px;max-width:82px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.two-d-module em{margin-left:auto;margin-right:12px;font-style:normal;font-size:14px;font-weight:700;color:#294962}.two-d-resource{position:absolute;width:28px;height:28px;pointer-events:auto;cursor:pointer;transform:translate(-14px,-14px) translateY(calc(var(--node-lift,0px) + var(--node-float,0px))) scale(var(--node-scale,1));color:#294962;white-space:nowrap;font-size:11px}.two-d-resource:before{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:auto}.two-d-resource-dot{position:absolute;left:10px;top:10px;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 38% 34%,#fff 0 20%,var(--module-color) 42% 100%);box-shadow:0 0 0 1px color-mix(in srgb,var(--module-color) 72%,#fff),0 0 7px color-mix(in srgb,var(--module-color) 42%,transparent);transition:transform .2s ease,box-shadow .2s ease}.two-d-resource-dot:after{content:"";position:absolute;inset:-4px;border:1px solid color-mix(in srgb,var(--module-color) 48%,#fff);border-radius:50%;opacity:.7}.two-d-resource.is-hovered .two-d-resource-dot{transform:scale(1.18);box-shadow:0 0 0 1px color-mix(in srgb,var(--module-color) 84%,#fff),0 0 11px color-mix(in srgb,var(--module-color) 58%,transparent)}.two-d-resource.is-hovered .two-d-resource-dot:after{opacity:1;transform:scale(1.12)}.two-d-resource-label{position:absolute;left:20px;top:50%;padding:2px 4px;border:1px solid color-mix(in srgb,var(--module-color) 22%,transparent);border-radius:3px;background:color-mix(in srgb,var(--module-color) 5%,#fff);color:#294962;transform:translateY(-50%);transition:color .18s ease,border-color .18s ease,background .18s ease}.two-d-resource.label-left .two-d-resource-label{left:auto;right:20px}.two-d-resource.label-top .two-d-resource-label{left:50%;right:auto;top:auto;bottom:20px;transform:translateX(-50%)}.two-d-resource.label-bottom .two-d-resource-label{left:50%;top:20px;transform:translateX(-50%)}.two-d-resource.is-clicked .two-d-resource-dot{animation:two-d-resource-press .26s ease-out both}@keyframes two-d-module-press{0%{transform:translate(-50%,-50%) translateY(calc(var(--node-lift,0px) + var(--node-float,0px))) scale(var(--node-scale,1))}35%{transform:translate(-50%,-50%) translateY(calc(var(--node-lift,0px) + var(--node-float,0px) + 1px)) scale(calc(var(--node-scale,1)*0.965))}to{transform:translate(-50%,-50%) translateY(calc(var(--node-lift,0px) + var(--node-float,0px))) scale(var(--node-scale,1))}}@keyframes two-d-resource-press{0%{transform:scale(1)}35%{transform:scale(.78)}to{transform:scale(1)}}.theme-dark{--graph-page:#071425;--graph-toolbar:#0b2038;--graph-toolbar-text:#b9d8e8;--graph-button-bg:#153a59;--graph-button-text:#dff4ff;--graph-canvas:#0b2038;--graph-pattern:#183d5b;--graph-three-center:#173d62;--graph-three-mid:#0d2948;--graph-three-edge:#071425;--graph-vignette:rgba(6,18,37,0.35);--graph-label-bg:rgba(8,38,67,0.86);--graph-label-border:rgba(113,203,245,0.62);--graph-text:#fff;--graph-muted:#a8c5d8;--graph-two-d-start:#0b2038;--graph-two-d-end:#071425;--graph-two-d-glow:rgba(36,116,172,0.23);--graph-two-d-ripple:rgba(85,190,238,0.34);--graph-panel-shadow:rgba(0,11,28,0.36);--graph-2d-bg:#07182e;--graph-2d-bg-end:#0e2a4d;--graph-2d-grid:#234663;--graph-2d-arc:rgba(95,170,213,0.22)}.theme-light{--graph-page:#fff;--graph-toolbar:#fff;--graph-toolbar-text:#58748a;--graph-button-bg:#e6f2f8;--graph-button-text:#275876;--graph-canvas:#f5fafd;--graph-pattern:#d4e3eb;--graph-three-center:#dbeaf2;--graph-three-mid:#c5dce8;--graph-three-edge:#a9c4d3;--graph-vignette:rgba(73,116,140,0.18);--graph-label-bg:rgba(239,248,252,0.94);--graph-label-border:rgba(70,142,177,0.48);--graph-text:#193b55;--graph-muted:#70899b;--graph-two-d-start:#f7fbfd;--graph-two-d-end:#dcebf3;--graph-two-d-glow:rgba(118,196,222,0.14);--graph-two-d-ripple:rgba(76,145,180,0.2);--graph-panel-shadow:rgba(37,75,101,0.18);--graph-2d-bg:#f5f8fc;--graph-2d-bg-end:#eef4fa;--graph-2d-grid:#d8e6ef;--graph-2d-arc:rgba(105,157,184,0.18)}.course-graph-three:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,rgba(74,157,207,.18),transparent 52%),radial-gradient(ellipse at 50% 100%,var(--graph-vignette),transparent 68%),linear-gradient(90deg,rgba(4,17,35,.2),transparent 20%,transparent 80%,rgba(4,17,35,.2));z-index:1}.course-graph-three canvas{position:relative;z-index:0;display:block;width:100%;height:100%}.three-label-overlay{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}.three-html-label{min-width:28px;max-width:180px;padding:2px 5px 2px 18px;border:1px solid var(--label-border);border-radius:3px;font:600 12px/1.2 Microsoft YaHei,sans-serif;text-shadow:none;box-shadow:none;transition:opacity .16s,transform .16s}.three-html-label,.three-layer-center-label{position:absolute;background:var(--label-bg);color:var(--label-color);white-space:nowrap;text-align:center;transform:translate(-50%,-50%)}.three-layer-center-label{display:none;min-width:108px;padding:6px 11px 6px 24px;border:1px solid var(--label-border);border-left:3px solid var(--layer-color);border-radius:5px;box-shadow:0 0 12px color-mix(in srgb,var(--layer-color) 28%,transparent);font:600 12px/1.15 Microsoft YaHei,sans-serif;pointer-events:none}.three-layer-center-label i{position:absolute;left:9px;top:50%;width:7px;height:7px;border-radius:50%;background:var(--layer-color);box-shadow:0 0 8px var(--layer-color);transform:translateY(-50%)}.three-layer-center-label span,.three-layer-center-label strong{display:block}.three-layer-center-label strong{color:var(--layer-color);font-size:13px}.three-layer-center-label span{margin-top:3px;color:var(--label-color);font-size:11px;opacity:.82}.three-html-label:before{content:"";position:absolute;left:7px;top:50%;width:5px;height:5px;border-radius:50%;background:var(--label-accent);transform:translateY(-50%);pointer-events:none}.three-html-label.is-core{font-size:13px;font-weight:700;padding-top:3px;padding-bottom:3px}.three-layer-legend{position:absolute;z-index:2;top:20px;left:20px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:8px;padding:11px 13px;border:1px solid var(--graph-label-border);border-radius:6px;background:var(--graph-label-bg);box-shadow:0 7px 20px rgba(0,0,0,.2);color:var(--graph-text);font-size:12px;pointer-events:none}.three-layer-legend span{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:7px;transition:opacity .25s}.three-layer-legend span.dim{opacity:.24}.three-layer-legend i{width:8px;height:8px;border-radius:50%;box-shadow:0 0 9px currentColor}.three-layer-legend .layer-q{background:#8054ff;color:#8054ff}.three-layer-legend .layer-a{background:#ff8a00;color:#ff8a00}.three-layer-legend .layer-k{background:#00a8f3;color:#00a8f3}.three-gesture-hint{z-index:2;bottom:16px;padding:6px 9px;border:1px solid var(--graph-label-border);border-radius:4px;color:var(--graph-muted);font-size:11px;pointer-events:none}.three-gesture-hint,.three-node-panel{position:absolute;right:18px;background:var(--graph-label-bg)}.three-node-panel{z-index:3;top:72px;width:240px;padding:17px;border:1px solid var(--graph-label-border);border-radius:8px;box-shadow:0 14px 30px var(--graph-panel-shadow);color:var(--graph-text)}.three-panel-close{position:absolute;top:7px;right:8px;width:22px;height:22px;border:0;background:transparent;color:var(--graph-muted);font-size:18px;line-height:20px;cursor:pointer}.three-panel-kicker{color:var(--graph-button-text);font-size:11px}.three-node-panel h3{margin:7px 24px 12px 0;color:var(--graph-text);font-size:16px;line-height:1.45}.three-node-panel p{margin:6px 0;color:var(--graph-muted);font-size:12px}.three-panel-tags{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:4px;margin-top:10px}.three-panel-open{width:100%;margin-top:14px;padding:7px 10px;border:1px solid var(--graph-label-border);border-radius:5px;background:var(--graph-button-bg);color:var(--graph-button-text);cursor:pointer}@media(max-width:760px){.graph-switch{-ms-flex-align:start;align-items:flex-start;-ms-flex-direction:column;flex-direction:column}.course-graph-canvas,.course-graph-three{height:760px}}