.pf-page{--pf-navy:#173c63;--pf-navy-deep:#0f2944;--pf-gold:#dcbb78;--pf-gold-deep:#b58b3f;--pf-accent:#245a92;--pf-negative:#b65353;--pf-ink:#213449;--pf-ink-2:#4c6178;--pf-muted:#758496;--pf-line:#e3e8ef;--pf-on-navy:#e9eff7eb;--pf-on-navy-2:#e9eff7a8;--pf-on-navy-3:#e9eff780;flex-direction:column;gap:18px;display:flex}.pf-page h2{letter-spacing:-.2px;font-size:17px}.pf-number{text-align:right;font-variant-numeric:tabular-nums;color:var(--pf-ink)}.pf-number.negative{color:var(--pf-negative)}.pf-nowrap{white-space:nowrap}.pf-hero{color:#e9eff7;background:radial-gradient(900px 260px at 92% -20%, #dcbb7829, transparent 62%), linear-gradient(135deg, var(--pf-navy) 0%, #12345a 55%, var(--pf-navy-deep) 100%);border-radius:12px;padding:24px 28px 30px;position:relative;overflow:hidden;box-shadow:0 18px 40px -28px #0f2944e6}.pf-hero:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff0b 1px,#0000 1px),linear-gradient(90deg,#ffffff0b 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0%,#0000 85%);mask-image:linear-gradient(#000 0%,#0000 85%)}.pf-hero>*{position:relative}.pf-hero-heading{flex-wrap:wrap;align-items:center;gap:8px 18px;display:flex}.pf-hero h1{color:#fff;margin:0;font-size:24px}.pf-hero-scope{color:var(--pf-on-navy-2);flex-wrap:wrap;gap:6px 18px;margin-left:auto;font-size:12px;display:flex}.pf-result{flex-direction:column;gap:18px;margin-top:20px;display:flex}.pf-record{flex-direction:column;min-width:0;display:flex}.pf-record-row{border-bottom:1px solid #e9eff71a;grid-template-columns:minmax(150px,1.4fr) repeat(5,minmax(0,1fr));align-items:baseline;gap:12px;padding:12px 0;display:grid}.pf-record-row:last-child{border-bottom:0}.pf-record-row>:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.pf-record-head{color:var(--pf-on-navy-2);border-bottom-color:#e9eff72e;align-items:end;padding-top:0;font-size:11.5px}.pf-record-head small{color:var(--pf-on-navy-3);margin-top:2px;font-size:10.5px;display:block}.pf-record-window{color:var(--pf-on-navy);font-size:13px;font-weight:500}.pf-record-window small{color:var(--pf-on-navy-3);font-variant-numeric:tabular-nums;margin-top:3px;font-size:10.5px;font-weight:400;display:block}.pf-record-row>[role=cell]{color:var(--pf-on-navy);font-size:16px;font-weight:600}.pf-record-row.is-live>[role=cell]{letter-spacing:-.6px;color:#fff;font-size:clamp(20px,1.85vw,30px)}.pf-record-row.is-live>[role=cell]:nth-child(2){color:var(--pf-gold)}.pf-record-row>[role=cell].negative{color:#f5b1aa}.pf-record-none{color:var(--pf-on-navy-2);font-size:14px;font-weight:500}.pf-result-chart{min-width:0}.pf-result-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;display:flex}.pf-page .pf-result-heading h2{letter-spacing:0;color:var(--pf-on-navy);font-size:13px;font-weight:500}.pf-hero .ant-segmented{color:var(--pf-on-navy-2);background:#e9eff714}.pf-hero .ant-segmented-item:hover:not(.ant-segmented-item-selected){color:#fff}.pf-hero .ant-segmented-item-selected,.pf-hero .ant-segmented-thumb{color:#fff;box-shadow:none;background:#dcbb783d}.pf-minor{color:var(--pf-on-navy-2);flex-wrap:wrap;gap:4px 18px;margin-top:4px;font-size:12px;display:flex}.pf-minor b{color:var(--pf-on-navy);font-variant-numeric:tabular-nums;font-weight:600}.pf-hero>.pf-trace-link{cursor:pointer;font:inherit;color:var(--pf-on-navy-3);background:0 0;border:0;padding:0;font-size:11px;line-height:16px;position:absolute;bottom:9px;right:16px}.pf-hero>.pf-trace-link:hover{color:var(--pf-on-navy);text-decoration:underline}.pf-hero>.pf-trace-link:focus-visible{outline:2px solid var(--pf-gold);outline-offset:2px;border-radius:2px}.pf-section{border:1px solid var(--pf-line);background:#fff;border-radius:12px;flex-direction:column;gap:16px;min-width:0;padding:20px 22px 22px;display:flex}.pf-section-header{border-bottom:1px solid #eef1f5;flex-wrap:wrap;align-items:baseline;gap:12px;padding-bottom:14px;display:flex}.pf-section-index{letter-spacing:1.5px;color:var(--pf-accent);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.pf-section-meta{color:var(--pf-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 16px;margin-left:auto;font-size:12px;display:flex}.pf-panel{border:1px solid #e8edf3;border-radius:8px;min-width:0;padding:14px 14px 10px}.pf-panel-heading{flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-bottom:8px;display:flex}.pf-panel-heading h3{font-size:13px}.pf-panel-heading>span{color:var(--pf-muted);font-size:11px}.pf-panel-heading>h3+span{margin-left:auto}.pf-panel-heading>.pf-panel-switch{align-self:center;margin-left:4px}.pf-chart{width:100%;height:260px}.pf-chart.pf-chart-nav{height:300px}.pf-chart.pf-chart-scatter{flex:1;height:auto;min-height:360px}.pf-chart.pf-chart-sector{height:320px}.pf-status{background:#fafbfd;border:1px dashed #d5dde7;border-radius:8px;flex-direction:column;gap:6px;min-width:0;padding:12px 14px;display:flex}.pf-status>span{color:var(--pf-muted);font-size:11px}.pf-status>strong{color:var(--pf-ink-2);font-size:14px;font-weight:600}.pf-pending{justify-content:center;align-items:center;min-height:360px;display:flex}.pf-legend-inline{color:var(--pf-muted);flex-wrap:wrap;gap:4px 12px;font-size:11px;display:inline-flex}.pf-legend-inline>span{align-items:center;gap:5px;display:inline-flex}.pf-legend-inline i{border-radius:2px;flex:none;width:8px;height:8px}.pf-legend-inline i.is-rest{background:#cdd6e1}.pf-legend-inline b{color:var(--pf-ink-2);font-variant-numeric:tabular-nums;font-weight:600}.pf-source-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);align-items:stretch;gap:14px;display:grid}.pf-top-n-panel{flex-direction:column;display:flex}.pf-chart.pf-chart-top-n{flex:1;height:auto;min-height:300px}.pf-attribution-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;display:grid}.pf-attribution{flex-direction:column;min-width:0;display:flex}.pf-attribution-row{border-bottom:1px solid #f0f3f7;grid-template-columns:minmax(0,1.15fr) minmax(48px,1fr) 56px 50px;align-items:center;gap:8px;min-height:32px;padding:3px 2px;font-size:12px;display:grid}.pf-attribution-head{min-height:0;color:var(--pf-muted);border-bottom-color:#e3e8ef;padding-top:0;font-size:11px}.pf-attribution-label{min-width:0;color:var(--pf-ink-2);flex-direction:column;line-height:1.35;display:flex}.pf-attribution-label b{color:var(--pf-ink);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:600}.pf-attribution-label small{color:var(--pf-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.pf-attribution-bar{height:10px;position:relative}.pf-attribution-bar i{position:absolute;top:0;bottom:0}.pf-attribution-bar .pf-attribution-zero{background:#aeb9c6;width:1px;top:-4px;bottom:-4px}.pf-attribution-bar .is-positive{background:var(--pf-accent);border-radius:0 3px 3px 0}.pf-attribution-bar .is-negative{background:var(--pf-negative);border-radius:3px 0 0 3px}.pf-attribution-row.is-rest{background:#f8fafc}.pf-attribution-row.is-rest .is-positive,.pf-attribution-row.is-rest .is-negative{opacity:.45}.pf-attribution-row.is-total{color:var(--pf-ink);border-top:1px solid #dfe5ec;border-bottom:0;font-weight:600}.pf-day-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pf-toolbar-label{color:var(--pf-muted);white-space:nowrap;font-size:12px}.pf-day-select.ant-select{width:140px}.pf-day-note{color:#a24949;font-size:12px}.pf-day-grid{grid-template-columns:minmax(0,1fr) minmax(460px,1.1fr);align-items:stretch;gap:14px;display:grid}.pf-day-charts{flex-direction:column;gap:14px;min-width:0;display:flex}.pf-signal-panel{flex-direction:column;flex:1;display:flex}.pf-chart.pf-chart-signal{flex:1;height:auto;min-height:260px}.pf-target-list{flex-direction:column;display:flex}.pf-target{opacity:0;animation:.4s ease-out forwards pf-rise;animation-delay:calc(var(--pf-step) * 35ms + .25s);border-bottom:1px solid #f0f3f7;grid-template-columns:26px 54px minmax(0,1fr) 62px minmax(120px,160px);align-items:center;gap:8px;padding:4px 2px;font-size:12px;display:grid}.pf-target:last-child{border-bottom:0}.pf-target-head{opacity:1;color:var(--pf-muted);padding-top:0;font-size:11px;animation:none}.pf-target-rank{color:var(--pf-muted);font-variant-numeric:tabular-nums;text-align:right}.pf-target-ticker{color:var(--pf-ink);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:600}.pf-target-name{min-width:0;color:var(--pf-ink-2);flex-direction:column;line-height:1.35;display:flex}.pf-target-name small{color:var(--pf-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.pf-target-issuer{align-items:center;gap:6px;min-width:0;display:flex}.pf-target-issuer>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pf-new{color:#8a6420;background:#fbf4e4;border:1px solid #ead7ae;border-radius:3px;flex:none;padding:0 5px;font-size:10px;font-style:normal;line-height:16px}.pf-book-legend{margin-top:8px}.pf-exits{border-top:1px solid #e3e8ef;margin-top:12px;padding-top:8px}.pf-exit{grid-template-columns:26px 54px minmax(0,1fr) 72px;align-items:center;gap:8px;padding:4px 2px;font-size:12px;display:grid}.pf-exit-head{color:var(--pf-muted);padding-top:0;font-size:11px}.pf-contribution{height:12px;display:flex;position:relative}.pf-contribution-negative,.pf-contribution-positive{gap:1px;display:flex}.pf-contribution-positive{border-left:1px solid #8a9bb0}.pf-contribution-negative{justify-content:flex-end}.pf-contribution i{min-width:1px;height:100%;display:block}.pf-contribution-negative i:first-child{border-radius:3px 0 0 3px}.pf-contribution-positive i:last-child{border-radius:0 3px 3px 0}.pf-contribution-tip{font-variant-numeric:tabular-nums;flex-direction:column;gap:2px;min-width:150px;display:flex}.pf-contribution-tip>div{justify-content:space-between;gap:14px;display:flex}.pf-contribution-tip span{align-items:center;gap:6px;display:inline-flex}.pf-contribution-tip i{border-radius:2px;width:8px;height:8px}.pf-contribution-tip b{font-weight:500}.pf-library{background:#f8fafc;border:1px solid #e8edf3;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px 22px;padding:12px 16px;display:flex}.pf-library h3{font-size:13px}.pf-library-total{letter-spacing:-.4px;color:var(--pf-ink);font-variant-numeric:tabular-nums;font-size:22px;font-weight:650}.pf-library-total span{letter-spacing:0;color:var(--pf-muted);margin-left:4px;font-size:12px;font-weight:400}.pf-library-mix{flex-direction:column;flex:1;gap:7px;min-width:260px;display:flex}.pf-mix{gap:2px;height:10px;display:flex}.pf-mix i{border-radius:2px;min-width:3px;height:100%}.pf-walk{flex-direction:column;display:flex}.pf-walk-row{border-bottom:1px solid #f0f3f7;grid-template-columns:84px minmax(200px,1fr) repeat(3,minmax(120px,200px));align-items:center;gap:16px;padding:10px 2px;font-size:12px;display:grid}.pf-walk-head{color:var(--pf-muted);border-bottom-color:#e3e8ef;align-items:end;padding-top:0;font-size:11px}.pf-walk-head small{color:#8696a8;margin-top:2px;font-size:10.5px;line-height:1.45;display:block}.pf-walk-row>[role=cell].pf-number{font-size:15px;font-weight:600}.pf-walk-row.is-live>[role=cell].pf-number{color:var(--pf-gold-deep);font-size:18px}.pf-walk-row>[role=cell] small{color:var(--pf-muted);font-size:10.5px;font-weight:400;display:block}.pf-walk-label{color:var(--pf-ink-2);white-space:nowrap;font-size:12px}.pf-walk-row.is-live .pf-walk-label{color:var(--pf-ink);font-weight:600}.pf-walk-legend{flex-wrap:wrap;gap:4px 12px;display:flex}.pf-walk-legend>span{align-items:center;gap:5px;display:inline-flex}.pf-walk-legend i{border-radius:2px;width:14px;height:8px}.pf-walk-legend i.is-train{background:linear-gradient(90deg,#d5e3f3,#a9c7e8)}.pf-walk-legend i.is-test{background:linear-gradient(90deg, var(--pf-accent), #1c4a7a)}.pf-walk-legend i.is-live{background:linear-gradient(90deg, var(--pf-gold-deep), var(--pf-gold))}.pf-walk-track{background:#f1f4f8;border-radius:4px;height:16px;display:block;position:relative}.pf-walk-track i{transform-origin:0;border-radius:4px;animation:.7s cubic-bezier(.2,.7,.2,1) forwards pf-draw;position:absolute;top:0;bottom:0;transform:scaleX(0)}.pf-walk-track .pf-walk-train{animation-delay:calc(var(--pf-step) * .22s + .1s);background:linear-gradient(90deg,#d5e3f3,#a9c7e8)}.pf-walk-track .pf-walk-test{background:linear-gradient(90deg, var(--pf-accent), #1c4a7a);animation-delay:calc(var(--pf-step) * .22s + .5s)}.pf-walk-track .pf-walk-test.is-live{background:linear-gradient(90deg, var(--pf-gold-deep), var(--pf-gold));box-shadow:0 0 0 3px #dcbb782e}.pf-walk-axis{border-bottom:0;padding-top:0}.pf-years{border-top:1px solid #e3e8ef;height:18px;display:block;position:relative}.pf-years span{color:#8b97a7;font-variant-numeric:tabular-nums;font-size:10px;position:absolute;top:4px;transform:translate(-50%)}.pf-years span:before{content:"";background:#cfd8e3;width:1px;height:5px;position:absolute;top:-8px;left:50%}.pf-family-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:stretch;gap:14px;display:grid}.pf-scatter-panel,.pf-family-list{flex-direction:column;display:flex}.pf-family-row{grid-template-columns:52px minmax(0,1fr) 48px 64px minmax(120px,150px);align-items:center;gap:10px;padding:8px 2px 4px;font-size:12px;display:grid}.pf-family-head{color:var(--pf-muted);border-bottom:1px solid #eef1f5;padding:0 2px 7px;font-size:11px}.pf-family-item{opacity:0;animation:.4s ease-out forwards pf-rise;animation-delay:calc(var(--pf-step) * 60ms + .2s);border-bottom:1px solid #f0f3f7}.pf-family-item:last-child{border-bottom:0}.pf-family-id{color:var(--pf-gold-deep);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:600}.pf-weights-pair{flex-direction:column;gap:3px;display:flex}.pf-weight-line{grid-template-columns:minmax(0,1fr) 48px;align-items:center;gap:6px;display:grid}.pf-weight-line i{background:var(--pf-accent);transform-origin:0;border-radius:0 3px 3px 0;height:7px;animation:.7s cubic-bezier(.2,.7,.2,1) both pf-draw;display:block}.pf-weight-line.is-control i{background:#b9c6d6}.pf-weight-line b{color:var(--pf-ink-2);text-align:right;font-variant-numeric:tabular-nums;font-size:11px;font-weight:500}.pf-members{flex-direction:column;gap:5px;margin:0;padding:0 2px 10px 64px;list-style:none;display:flex}.pf-member{grid-template-columns:58px 26px minmax(0,1fr);align-items:baseline;gap:8px;min-width:0;font-size:11.5px;line-height:16px;display:grid}.pf-member-exposure{color:var(--pf-muted);white-space:nowrap}.pf-member code{color:var(--pf-ink-2);overflow-wrap:anywhere}.pf-group-tag{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.pf-group-tag i{border-radius:2px;flex:none;width:8px;height:8px}.pf-trace .ant-descriptions-item-content{overflow-wrap:anywhere;min-width:0}@keyframes pf-rise{to{opacity:1;transform:none}}@keyframes pf-draw{to{transform:scaleX(1)}}@media (width<=1300px){.pf-source-grid,.pf-family-grid{grid-template-columns:minmax(0,1fr)}.pf-chart.pf-chart-top-n{flex:none;height:320px}}@media (width<=1100px){.pf-day-grid{grid-template-columns:minmax(0,1fr)}.pf-chart.pf-chart-signal{flex:none;height:280px}}@media (width<=780px){.pf-hero{padding:22px 18px 30px}.pf-record-head{display:none}.pf-record-row{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:10px}.pf-record-row>[role=rowheader]{grid-column:1/-1}.pf-record-row>[role=cell]{text-align:left}.pf-record-row>[role=cell]:before{content:attr(data-label) "\a " attr(data-unit);white-space:pre-line;letter-spacing:0;min-height:28px;color:var(--pf-on-navy-3);margin-bottom:2px;font-size:10.5px;font-weight:400;line-height:14px;display:block}.pf-hero-scope{margin-left:0}.pf-section{padding:16px 14px 18px}.pf-section-meta,.pf-panel-heading>h3+span{margin-left:0}.pf-attribution-grid{grid-template-columns:minmax(0,1fr)}.pf-target{grid-template-columns:22px 50px minmax(0,1fr) 96px}.pf-target>:nth-child(4){display:none}.pf-exit{grid-template-columns:22px 50px minmax(0,1fr) 64px}.pf-walk-row{grid-template-columns:64px repeat(3,minmax(0,1fr));gap:8px 10px}.pf-walk-row>:nth-child(2){grid-area:2/1/auto/-1}.pf-walk-axis>:first-child{display:none}.pf-walk-axis>.pf-years{grid-area:auto/1/auto/-1}.pf-family-row{grid-template-columns:44px minmax(0,1fr) 40px 58px 110px;gap:8px}.pf-members{padding-left:6px}.pf-member{grid-template-columns:58px minmax(0,1fr);row-gap:2px}.pf-member code{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){.pf-page *,.pf-page :before,.pf-page :after{transition:none!important;animation:none!important}.pf-target,.pf-family-item{opacity:1;transform:none}.pf-weight-line i,.pf-walk-track i{transform:none}}.research-flow-link{color:#8290a1;white-space:nowrap;font-size:11px;text-decoration:none}.research-flow-link:hover,.research-flow-link:focus-visible{color:#245a92;text-decoration:underline}.research-flow-page{max-width:1280px;color:var(--flow-text)}.research-flow-page .page-intro{margin-bottom:24px}.research-flow-page .loading{color:var(--flow-secondary)}.flow-pipeline{--flow-columns:minmax(170px, 1fr) minmax(278px, 1.8fr) minmax(114px, .85fr) minmax(180px, 1.2fr) 80px;position:relative}.flow-columns,.flow-row{grid-template-columns:var(--flow-columns);padding-left:40px;padding-right:var(--flow-space);column-gap:16px;display:grid}.flow-columns{border-bottom:1px solid var(--flow-border);color:var(--flow-secondary);font-size:var(--flow-small);margin-bottom:16px;padding-top:8px;padding-bottom:12px;line-height:20px}.flow-group h2{font-size:var(--flow-small);color:var(--flow-secondary);margin:0 0 10px 40px;font-weight:600;line-height:20px}.flow-group+.flow-group{margin-top:80px}.flow-group+.flow-group h2{margin-bottom:12px}.flow-rows{gap:24px;margin:0;padding:0;list-style:none;display:grid}.flow-row{width:100%;min-width:0;min-height:44px;padding-top:var(--flow-space);padding-bottom:var(--flow-space);text-align:left;border-radius:var(--flow-radius);background:var(--flow-background);color:var(--flow-text);font:inherit;cursor:pointer;border:0;align-items:center;transition:background-color .18s,box-shadow .18s;position:relative}.flow-row:hover{background:var(--flow-hover)}.flow-row:focus-visible{outline:2px solid var(--flow-primary);outline-offset:3px}.flow-node-dot{justify-content:center;align-items:center;width:10px;height:10px;display:flex;position:absolute;top:calc(50% - 5px);left:11px}.flow-node-dot .ant-badge{display:flex}.flow-node-dot .ant-badge.ant-badge-status .ant-badge-status-dot,.flow-row-status .ant-badge.ant-badge-status .ant-badge-status-dot{width:10px;height:10px;top:0}.flow-row-heading{white-space:nowrap;grid-column:1;align-items:center;gap:10px;min-width:0;line-height:20px;display:flex}.flow-number{color:var(--flow-secondary);font-size:var(--flow-small);font-variant-numeric:tabular-nums}.flow-row-name{font-size:var(--flow-font);font-weight:600}.flow-row-method,.flow-row-time,.flow-row-metric,.flow-row-status{white-space:nowrap;min-width:0;line-height:20px;font-size:var(--flow-small)}.flow-row-method{grid-column:2}.flow-row-time{color:var(--flow-secondary);grid-column:3}.flow-row-metric{font-variant-numeric:tabular-nums;grid-column:4;font-weight:500}.flow-row-status{color:var(--flow-secondary);grid-column:5;align-items:center;display:flex}.flow-row-status .ant-badge{align-items:center;line-height:20px;display:inline-flex}.flow-row-status .ant-badge.ant-badge-status .ant-badge-status-text{font-size:var(--flow-small);color:var(--flow-secondary)}.flow-row[data-status=已规划] .flow-row-name,.flow-row[data-status=已规划] .flow-row-method{color:var(--flow-secondary)}@property --flow-phase{syntax:"<number>";inherits:true;initial-value:0}.flow-connections{pointer-events:none;width:100%;height:100%;color:var(--flow-line);animation:4.6s linear infinite flow-cycle;position:absolute;inset:0;overflow:visible}.flow-segment{fill:none;stroke:currentColor;stroke-width:2px;stroke-dasharray:4 4;transition:stroke .18s}.flow-connection[data-carries-data=true]{color:var(--flow-primary)}.flow-connection[data-carries-data=true] .flow-segment{stroke-dasharray:none}.flow-connection[data-highlighted=true]{color:var(--flow-primary)}.flow-connection[data-highlighted=true] .flow-segment{stroke-opacity:1}.flow-connection>text{fill:var(--flow-secondary);font-size:11px}.flow-pulse{--flow-position:clamp(0, calc(var(--flow-phase) * var(--flow-count) - var(--flow-order)), 1);fill:none;stroke:var(--flow-glow);stroke-width:5px;stroke-linecap:round;stroke-dasharray:.42 1.4;filter:drop-shadow(0 0 2px var(--flow-primary));stroke-dashoffset:calc(.42px - var(--flow-position) * 1.42px);opacity:min(calc(var(--flow-position) * 20), calc((1 - var(--flow-position)) * 20))}@keyframes flow-cycle{0%{--flow-phase:0}56.5217%,to{--flow-phase:1}}.flow-details{color:var(--flow-text)}.flow-details>section{border-bottom:1px solid var(--flow-border);margin-bottom:20px;padding-bottom:20px}.flow-details>section:last-child{border-bottom:0;margin-bottom:0}.flow-details h3{margin-bottom:12px;font-size:13px}.flow-details ul{gap:10px;margin:0;padding:0;font-size:13px;line-height:1.8;list-style:none;display:grid}.flow-details section[aria-label=限制]{color:#826431}.flow-empty{color:var(--flow-secondary);font-size:var(--flow-small)}.flow-facts,.flow-io{font-size:var(--flow-small);gap:10px;margin:14px 0 0;line-height:1.8;display:grid}.flow-facts>div,.flow-io>div{grid-template-columns:110px minmax(0,1fr);gap:12px;display:grid}.flow-facts dt,.flow-io dt{color:var(--flow-secondary)}.flow-facts dd,.flow-io dd{overflow-wrap:anywhere;margin:0}@media (width<=1199px){.flow-columns{display:none}.flow-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;padding:10px 12px 10px 36px}.flow-row-heading{grid-area:1/1}.flow-row-name{font-size:13px}.flow-row-status{grid-area:1/2;justify-content:flex-end}.flow-row-method{grid-area:2/1/auto/-1}.flow-row-time{grid-area:3/1;font-size:11px}.flow-row-metric{grid-area:3/2;font-size:11px}.flow-group h2{margin-left:36px}}@media (width<=600px){.flow-facts>div{grid-template-columns:minmax(0,1fr);gap:2px}.flow-io>div{grid-template-columns:32px minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.flow-row,.flow-segment{transition:none}.flow-connections{animation:none}.flow-pulse{display:none}}html,body{width:100%;height:100%}input::-ms-clear{display:none}input::-ms-reveal{display:none}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:#0000;font-family:sans-serif;line-height:1.15}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{text-align:left;caption-side:bottom;padding-top:.75em;padding-bottom:.3em}input,button,select,optgroup,textarea{color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner{border-style:none;padding:0}[type=reset]::-moz-focus-inner{border-style:none;padding:0}[type=submit]::-moz-focus-inner{border-style:none;padding:0}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{resize:vertical;overflow:auto}fieldset{border:0;min-width:0;margin:0;padding:0}legend{width:100%;max-width:100%;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal;margin-bottom:.5em;padding:0;display:block}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button{height:auto}[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}:root{color:#213449;font-synthesis:none;background:#f5f7fa;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{min-width:360px;margin:0}button,input{font:inherit}h1,h2,h3,p{margin:0}h1{letter-spacing:-.6px;font-size:26px;font-weight:650}h2{overflow-wrap:anywhere;font-size:18px;font-weight:650}h3{font-size:15px;font-weight:650}p{line-height:1.7}code{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.brand{color:#173c63;letter-spacing:-.7px;align-items:center;gap:10px;font-size:21px;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark{color:#fff;background:#173c63;border-radius:8px;flex-shrink:0;place-items:center;width:32px;height:32px;padding-bottom:4px;font-family:Georgia,serif;font-size:26px;line-height:1;display:grid}.app-header{background:#fff;border-bottom:1px solid #e4e9ef;align-items:center;gap:25px;min-height:68px;padding:16px 36px;display:flex}.workspace-shell{grid-template-columns:224px minmax(0,1fr);min-height:100svh;display:grid}.workspace-sidebar{background:#fff;border-right:1px solid #e4e9ef;flex-direction:column;height:100svh;padding:28px 16px 22px;display:flex;position:sticky;top:0}.workspace-brand{letter-spacing:-.4px;padding:0 9px 35px;font-size:18px;line-height:1.2}.workspace-brand .brand-mark{width:36px;height:36px}.brand-product{letter-spacing:2px;margin-top:5px;font-size:12px;font-weight:500;display:block}.module-navigation{flex-direction:column;gap:5px;display:flex}.nav-group-label{color:#8290a1;letter-spacing:1px;padding:0 14px 10px;font-size:11px;display:block}.nav-management{margin-top:32px}.module-link{color:#647387;border-radius:8px;align-items:center;gap:12px;padding:13px 14px;font-size:14px;line-height:20px;text-decoration:none;display:flex}.module-link:hover{color:#245a92;background:#f4f7fb}.module-link[aria-current=page]{color:#245a92;background:#eaf1f9;font-weight:600}.module-link:focus-visible,.workspace-brand:focus-visible{outline-offset:2px;outline:2px solid #245a92}.module-link svg,.mobile-menu-button svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:20px;height:20px}.sidebar-caption{color:#8b97a7;margin-top:auto;padding:16px 14px 0;font-size:11px}.workspace-body{min-width:0}.workspace-header{z-index:20;background:#fff;border-bottom:1px solid #e4e9ef;align-items:center;gap:16px;min-height:72px;padding:14px 32px;display:flex;position:sticky;top:0}.workspace-breadcrumb{color:#8b97a7;white-space:nowrap;align-items:center;gap:12px;font-size:12px;display:flex}.workspace-breadcrumb strong{color:#4c6178;font-weight:500}.account-controls{align-items:center;gap:18px;min-width:0;margin-left:auto;display:flex}.account-identity{flex-direction:column;gap:4px;min-width:0;display:flex}.account-email{color:#465b72;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.account-role{color:#8b97a7;font-size:10px}.environment-tag.ant-tag{color:#6e8094;background:#f7f9fc;border-color:#e2e8f0;margin:0;font-size:11px}.mobile-menu-button.ant-btn{display:none}.workspace-content{min-width:0;padding:30px 32px 40px}.workspace-content:focus{outline:none}.module-page{width:min(1600px,100%);min-width:0;margin:0 auto}.page-intro{justify-content:space-between;align-items:center;gap:20px;margin-bottom:6px;display:flex}.page-intro h1{margin:6px 0 7px}.muted{color:#758496;font-size:13px}.footnote{color:#8190a0;font-size:12px}.panel{background:#fff;border:1px solid #e3e8ef;border-radius:10px}.stack{flex-direction:column;gap:20px;min-width:0;display:flex}.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.research-page.stack,.research-layout>.workspace.stack,.results.stack,.overview.stack{gap:12px}.research-page .page-intro{margin:0 0 4px}.research-page .page-intro h1{margin:0;font-size:20px}.research-layout{grid-template-columns:minmax(320px,1fr) minmax(0,2.2fr);align-items:start;gap:20px;display:grid}.research-configuration{min-width:0;padding:16px;position:sticky;top:88px}.editor-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.editor-heading h2{font-size:15px}.editor-heading .ant-tag{margin:0;font-size:11px}.research-configuration .ant-form-item{margin-bottom:14px}.research-configuration .ant-form-item-label{padding-bottom:5px}.research-configuration .ant-form-item-label>label{font-size:12px}.editor-data-summary{color:#687e94;flex-wrap:wrap;gap:5px 10px;margin:-5px 0 14px;font-size:11px;display:flex}.editor-data-summary>a{margin-left:auto}.editor-data-basis,.editor-data-summary>.ant-alert{flex-basis:100%}.editor-parameters{justify-content:space-between;align-items:center;gap:8px;padding:10px 0 14px;display:flex}.editor-parameters>div{color:#657a90;gap:4px;font-size:11px;display:grid}.research-configuration .ant-descriptions-item-content{overflow-wrap:anywhere}.expression-editor,.saved-expression{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.7}.saved-expression{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.saved-field-bindings{gap:6px;min-width:0;display:grid}.research-dates{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.research-dates input{width:100%;min-width:0}.research-contract{margin-bottom:22px}.strategy-definition{background:#f6f8fb;border:1px solid #e8edf3;border-radius:6px;flex-direction:column;gap:10px;padding:15px;display:flex}.strategy-definition strong{color:#35516c;font-size:14px;font-weight:600}.workspace{min-width:0}.workspace-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.workspace-heading p{margin-top:5px}.workspace-heading h2{font-size:16px}.workspace-heading>.ant-space{flex-shrink:0}.title-row{align-items:center;gap:8px;display:flex}.result-origin{color:#73879b;font-size:11px}.result-formula{background:#fff9ed;border:1px solid #ead9b4;border-radius:6px;align-items:baseline;gap:10px;padding:8px 10px;display:flex}.result-formula>span{color:#927339;flex-shrink:0;font-size:11px}.result-formula>code{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.stage-status{color:#516b83;flex-wrap:wrap;align-items:center;gap:8px 18px;font-size:12px;display:flex}.stage-status>span{align-items:center;gap:6px;display:inline-flex}.stage-status .ant-tag{margin:0;font-size:11px}.run-state.stack{gap:10px}.run-issue,.run-cancelled{overflow-wrap:anywhere;border-radius:6px;flex-wrap:wrap;gap:4px 10px;padding:10px 12px;font-size:12px;display:flex}.run-issue{color:#a24949;background:snow;border:1px solid #eed6d6}.run-cancelled{color:#64778b;background:#f7f9fb;border:1px solid #e0e6ed}.empty-diagnostics{padding:32px 16px}.result-scope{color:#718295;flex-wrap:wrap;gap:7px 20px;font-size:12px;display:flex}.result-scope strong{color:#35516c;font-weight:600}.metrics{background:#fafbfd;border:1px solid #e3e8ef;border-radius:6px;grid-template-columns:repeat(6,minmax(0,1fr));display:grid;overflow:hidden}.metric{border-right:1px solid #e3e8ef;flex-direction:column;gap:5px;padding:10px;display:flex}.metric:last-child{border-right:0}.metric>span{color:#758496;font-size:11px}.metric strong{letter-spacing:-.6px;font-variant-numeric:tabular-nums;color:#294764;font-size:clamp(17px,1.4vw,22px);font-weight:650}.metric small{color:#8696a8;font-size:10px;line-height:1.5}.metric strong.negative{color:#b65353}.numeric-nowrap,.factor-id.ant-btn{white-space:nowrap;overflow-wrap:normal;word-break:keep-all}.factor-coverage{white-space:nowrap;flex-direction:column;gap:4px;display:flex}.storage-columns{gap:5px;display:grid}.storage-columns>div{align-items:baseline;gap:12px;display:flex}.result-panel{padding:0 14px 14px;overflow:hidden}.result-panel .ant-tabs-nav{margin-bottom:14px}.overview-charts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.overview-chart{border:1px solid #e8edf3;border-radius:6px;min-width:0;padding:12px 10px 0}.chart-heading{flex-direction:column;gap:4px;min-height:42px;display:flex}.chart-heading h3{font-size:13px}.chart-heading>span{color:#72869a;font-size:11px;line-height:1.5}.chart{width:100%;height:240px}.group-chart{grid-column:1/-1}.group-chart .chart{height:210px}.signal-summary{color:#6d8297;flex-wrap:wrap;gap:6px 16px;margin-top:4px;font-size:11px;display:flex}.diagnostic-metrics{grid-template-columns:repeat(2,minmax(0,1fr));max-width:380px}.diagnostic-charts{gap:12px;display:grid}.loading{color:#70849b;justify-content:center;align-items:center;gap:12px;padding:30px 12px;font-size:13px;display:flex}.running-state{text-align:center;padding:36px 24px}.comparison-control{align-items:center;gap:12px;display:flex}.comparison-control .ant-select{width:min(420px,75%)}.empty-workspace{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:480px;padding:60px 24px;display:flex}.dataset-details{gap:16px;padding:0 0 22px}.data-page>.page-intro{margin-bottom:0}.data-catalogue,.library-catalogue,.data-detail-tabs{padding:0 24px 8px;overflow:hidden}.data-catalogue>.ant-tabs>.ant-tabs-nav,.library-catalogue>.ant-tabs>.ant-tabs-nav,.data-detail-tabs>.ant-tabs>.ant-tabs-nav{margin-bottom:0}.data-catalogue .ant-tabs-tab,.library-catalogue .ant-tabs-tab,.data-detail-tabs .ant-tabs-tab{padding-top:19px;padding-bottom:19px}.data-toolbar{flex-wrap:wrap;align-items:center;gap:12px;padding:22px 0;display:flex}.data-toolbar>.ant-input-search{flex:1;min-width:200px;max-width:360px}.data-toolbar>.ant-select{width:180px}.data-count{color:#758496;white-space:nowrap;margin-left:auto;font-size:12px}.data-cell-stack{flex-direction:column;align-items:flex-start;gap:5px;display:flex}.data-cell-stack .muted{font-size:12px}.data-field-link.ant-btn{white-space:normal;text-align:left;overflow-wrap:anywhere;max-width:100%;height:auto;padding:0;line-height:1.6}.data-dataset-name.ant-btn{font-weight:600}.data-categories{color:#596f85;font-size:12px;line-height:1.8}.data-number{font-variant-numeric:tabular-nums;font-size:12px}.data-detail-summary{padding:24px}.data-detail-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.data-detail-heading>.stack{gap:12px}.data-detail-heading h2{font-size:22px}.data-detail-tabs .ant-tabs-tabpane>.stack{padding-top:24px;padding-bottom:20px}.data-table-select{width:260px;max-width:100%}.data-ticker-search{max-width:300px}.data-preview-value{text-overflow:ellipsis;white-space:nowrap;max-width:260px;display:inline-block;overflow:hidden}.data-quality-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.data-quality-stat{background:#fafbfd;border:1px solid #e4e9ef;border-radius:6px;flex-direction:column;gap:12px;padding:16px;display:flex}.data-quality-stat>span{color:#718295;font-size:12px}.data-quality-stat>strong{color:#35516c;font-variant-numeric:tabular-nums;font-size:24px;font-weight:600}.data-quality-section{flex-direction:column;gap:16px;min-width:0;display:flex}.data-issues{color:#657689;margin:0;padding-left:20px;font-size:13px;line-height:2}.data-block-code{overflow-wrap:anywhere;display:block}.data-field-detail .ant-descriptions-item-content{overflow-wrap:anywhere}.submit-error{margin-bottom:20px}.provenance .ant-descriptions-item-content{overflow-wrap:anywhere;min-width:0}.hash{margin:5px 0 12px;display:block}.table-select{width:210px}.ant-alert-description{overflow-wrap:anywhere}.ant-table-cell{font-variant-numeric:tabular-nums}.panel-toolbar{justify-content:space-between;align-items:center;gap:16px;padding:22px 0;display:flex}.status-select{width:130px}.library-name{flex-direction:column;gap:5px;display:flex}.library-name .ant-btn{white-space:normal;text-align:left;overflow-wrap:anywhere;height:auto;padding:0;display:block}.table-caption{color:#8190a0;padding:16px 0 20px;font-size:12px}.factor-table .ant-table-tbody>tr>td{vertical-align:top}.factor-expression{line-height:1.6;display:block}.data-cell-stack.factor-figures{align-items:flex-end}.factor-state{padding-top:22px}.members-panel{padding:22px;overflow:hidden}.members-panel h2+p{margin-top:6px}.member-error{margin-top:16px}.skip-link{z-index:2000;color:#fff;background:#173c63;border-radius:5px;padding:12px 18px;position:fixed;top:-60px;left:240px}.skip-link:focus{top:12px}.login-layout{background:#f3f6fa;grid-template-columns:repeat(2,minmax(0,1fr));min-height:100svh;display:grid;position:relative}.login-environment.ant-tag{color:#627489;background:#f6f8fb;border-color:#e3e8ef;margin:0;position:absolute;top:24px;right:28px}.login-brand-panel,.login-access-panel{justify-content:center;align-items:center;min-width:0;padding:64px 40px;display:flex}.login-intro{width:min(400px,100%)}.login-intro .brand{margin-bottom:28px}.login-headline{letter-spacing:-1px;color:#213449;font-size:clamp(28px,2.65vw,38px);font-weight:650;line-height:1.4}.login-access-panel{background:#fff;border-left:1px solid #e3e8ef}.login-access-card{flex-direction:column;gap:28px;width:min(400px,100%);padding:36px;display:flex}.login-access-card h1{letter-spacing:-.5px;font-size:23px}.login-access-card .ant-btn{height:46px;box-shadow:none;font-size:14px;font-weight:500}.login-card{width:min(460px,100% - 36px);margin:90px auto;padding:36px}@media (width<=1300px){.workspace-shell{grid-template-columns:200px minmax(0,1fr)}.workspace-sidebar{padding-left:12px;padding-right:12px}.workspace-content{padding:26px 24px 36px}.workspace-header{padding-left:24px;padding-right:24px}.research-layout{grid-template-columns:320px minmax(0,1fr);gap:20px}.research-configuration{padding:16px}.workspace-heading{flex-direction:column}.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=1100px){.research-layout{grid-template-columns:minmax(0,1fr)}.research-configuration{position:static}.research-layout>.workspace{order:-1}.account-controls{gap:12px}}@media (width<=960px){.workspace-shell{grid-template-columns:minmax(0,1fr)}.workspace-sidebar{display:none}.mobile-menu-button.ant-btn{display:inline-flex}.skip-link{left:16px}}@media (width<=780px){.login-layout{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr)}.login-environment.ant-tag{top:20px;right:24px}.login-brand-panel{padding:100px 24px 48px}.login-intro .brand{margin-bottom:24px}.login-access-panel{border-top:1px solid #e3e8ef;border-left:0;align-items:flex-start;padding:48px 24px}.login-access-card{padding:28px}.login-card{margin-top:50px;padding:26px}.app-header{flex-wrap:wrap;gap:12px;padding:14px 18px}.workspace-header{flex-wrap:wrap;gap:10px;padding:12px 16px}.account-controls{gap:10px;width:100%;margin-left:0;padding-top:3px}.account-identity{flex:1}.account-email{font-size:11px}.workspace-content{padding:24px 16px 32px}.page-intro{flex-direction:column;align-items:flex-start;gap:14px}.page-intro h1{font-size:23px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric strong{font-size:23px}.result-panel{padding:0 12px 14px}.overview-charts{grid-template-columns:minmax(0,1fr)}.chart{height:250px}.title-row{flex-wrap:wrap}.panel-toolbar{flex-direction:column;align-items:flex-start}.members-panel{padding:18px}.data-page>.page-intro{flex-direction:row;align-items:center}.data-catalogue,.library-catalogue,.data-detail-tabs{padding-left:14px;padding-right:14px}.data-toolbar>.ant-input-search{flex-basis:100%;max-width:none}.data-toolbar>.ant-select{flex:1;min-width:150px}.data-detail-summary{padding:18px}.data-detail-heading{flex-direction:column}.data-quality-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-toolbar{padding:18px 0}.empty-workspace{min-height:280px}}.field-record-filters{flex-wrap:wrap;gap:8px;display:flex}.field-record-filters>*{flex:150px;min-width:0}.field-record-filters input[type=date]{max-width:180px}.field-record-evidence,.data-field-detail{overflow-wrap:anywhere;min-width:0}.field-rule-definition{white-space:pre-wrap;overflow-wrap:anywhere;max-height:280px;font-size:12px;overflow-y:auto}@media (width<=600px){.factor-table .factor-expression{white-space:normal;overflow-wrap:anywhere;width:min(420px,100vw - 156px);min-width:160px}.factor-table .ant-table-cell:nth-child(2){max-width:calc(100vw - 156px)}}
