.industry-main{max-width:1400px;margin:auto;padding:44px 28px 60px}
.industry-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:25px}
.industry-hero h1{font-size:36px;letter-spacing:-1px;margin:0 0 10px}
.industry-meta{display:flex;align-items:flex-end;gap:26px}
.industry-meta div span,.industry-meta div strong{display:block}
.industry-meta div span{color:var(--muted);font-size:10px;margin-bottom:6px}
.industry-meta div strong{font-size:17px}
.industry-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.summary-tile{padding:18px 20px;background:linear-gradient(145deg,var(--card-grad-a),var(--card-grad-b));border:1px solid var(--line);border-radius:11px}
.summary-tile span{display:block;color:var(--muted);font-size:10px;margin-bottom:8px}
.summary-tile strong{font-size:25px}
.summary-tile em{font-style:normal;color:var(--muted);font-size:10px;margin-left:4px}
.heatmap-panel{margin-top:18px}
.crowding-panel{margin-top:18px}
.valuation-panel{margin-top:18px}
.valuation-asof{align-self:flex-start;color:var(--muted);font-size:11px}
.valuation-chart-wrap{height:390px;position:relative;margin-top:8px}
.valuation-chart-wrap canvas{width:100%;height:100%}
.valuation-tooltip{display:none;position:absolute;z-index:5;pointer-events:none;min-width:180px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--tooltip-bg);box-shadow:0 14px 38px rgba(0,0,0,.35);color:var(--text);font-size:11px;line-height:1.7}
.valuation-tooltip strong,.valuation-tooltip span{display:block}
.valuation-tooltip strong{font-size:13px;margin-bottom:5px;color:var(--text)}
.valuation-tooltip em{float:right;font-style:normal;color:var(--accent)}
.valuation-axis-note{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:10px;margin-top:10px}
.flow-bar-list{display:grid;gap:7px}
.flow-bar-row{display:grid;grid-template-columns:minmax(92px,150px) minmax(180px,1fr) 110px 145px;align-items:center;gap:12px;width:100%;padding:10px 12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--tile-bg);color:var(--text);text-align:left;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}
.flow-bar-row:hover,.flow-bar-row.active{border-color:var(--hover-border);background:var(--row-bg-strong);transform:translateY(-1px)}
.flow-bar-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.flow-bar-track{height:11px;border-radius:999px;background:linear-gradient(90deg,var(--accent-soft-line),var(--accent-soft-line) 49.5%,var(--line-soft-strong) 49.5%,var(--line-soft-strong) 50.5%,var(--red-soft-bg) 50.5%);overflow:hidden}
.flow-bar-track i{display:block;height:100%;width:var(--bar,0%);border-radius:999px}
.flow-bar-track i.positive{margin-left:50%;background:var(--red)}
.flow-bar-track i.negative{margin-left:calc(50% - var(--bar,0%));background:var(--accent)}
.flow-bar-row strong{font-size:14px;text-align:right;white-space:nowrap}
.flow-bar-row em{font-size:10px;color:var(--muted);font-style:normal;text-align:right;white-space:nowrap}
.industry-lower{display:block;margin-top:18px}
.subindustry-panel{min-width:0}
.flow-positive{color:var(--red)!important}
.flow-negative{color:var(--accent)!important}
.detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.detail-head h2{margin:0 0 5px}
.detail-head span{color:var(--muted);font-size:11px}
.detail-head>strong{font-size:30px;white-space:nowrap}
.detail-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:20px 0}
.detail-metrics div{padding:11px 12px;border:1px solid var(--line-soft-strong);border-radius:7px;background:var(--tile-bg)}
.detail-metrics span,.detail-metrics strong{display:block}
.detail-metrics span{color:var(--muted);font-size:9px;margin-bottom:6px}
.detail-metrics strong{font-size:14px}
.industry-chart-wrap{height:245px;position:relative}
.industry-chart-wrap canvas{width:100%;height:100%}
.detail-legend{display:flex;gap:18px;color:var(--muted);font-size:10px;margin-top:8px}
.detail-legend i{display:inline-block;width:18px;margin-right:6px;vertical-align:middle}
.inflow-bar{height:8px;background:linear-gradient(90deg,var(--accent) 0 50%,var(--red) 50%)}
.ratio-line{height:2px;background:var(--amber)}
.subindustry-inline{margin:0}
.subindustry-inline-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.subindustry-inline-head h2{margin:0;font-size:22px}
.subindustry-inline-head span{color:var(--muted);font-size:10px;white-space:nowrap}
.subindustry-heatmap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.subindustry-flow-list{display:grid;grid-template-columns:1fr;gap:7px}
.subindustry-flow-row{display:grid;grid-template-columns:minmax(118px,180px) minmax(180px,1fr) 100px minmax(220px,300px);align-items:center;gap:12px;width:100%;padding:10px 12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--tile-bg);color:var(--text);text-align:left;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}
.subindustry-flow-row:hover,.subindustry-flow-row.active{border-color:var(--hover-border);background:var(--row-bg-strong);transform:translateY(-1px)}
.subindustry-flow-row strong{font-size:14px;text-align:right;white-space:nowrap}
.subindustry-flow-row em{font-size:10px;color:var(--muted);font-style:normal;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.subindustry-heat-cell{min-height:78px;padding:11px;border:1px solid var(--line-soft);border-radius:8px;color:var(--text);text-align:left}
.subindustry-heat-cell:hover,.subindustry-heat-cell.active{border-color:var(--hover-border);box-shadow:0 0 0 1px var(--line-soft) inset}
.subindustry-heat-cell strong,.subindustry-heat-cell span,.subindustry-heat-cell em{display:block}
.subindustry-heat-cell strong{font-size:12px}
.subindustry-heat-cell span{font-size:18px;font-weight:760;margin-top:8px}
.subindustry-heat-cell em{font-style:normal;font-size:9px;opacity:.76;margin-top:4px;line-height:1.45}
.subindustry-empty{grid-column:1/-1;padding:18px;border:1px dashed var(--line-soft);border-radius:8px;color:var(--muted);font-size:11px;text-align:center;background:var(--tile-bg)}
.subindustry-stock-panel{margin-top:12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--tile-bg);overflow:hidden}
.stock-leader-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}
.stock-leader-head span,.stock-leader-head strong{display:block}
.stock-leader-head span{color:var(--muted);font-size:9px;margin-bottom:5px}
.stock-leader-head strong{font-size:16px}
.stock-leader-head em{color:var(--muted);font-size:10px;font-style:normal;white-space:nowrap}
.stock-leader-list{display:grid}
.stock-leader-row{display:grid;grid-template-columns:28px minmax(110px,1fr) 90px 90px 96px;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--line-soft)}
.stock-leader-row:first-child{border-top:0}
.stock-leader-row i{display:grid;place-items:center;width:22px;height:22px;border-radius:999px;background:var(--line-soft);color:var(--text);font-size:10px;font-style:normal}
.stock-leader-row strong{font-size:13px}
.stock-leader-row span,.stock-leader-row em{color:var(--muted);font-size:10px;font-style:normal}
.stock-leader-row b{text-align:right;font-size:13px}
.stock-leader-row em{text-align:right}
.stock-leader-empty{padding:14px;color:var(--muted);font-size:11px;text-align:center}
.pending-data{margin-top:18px;padding:11px 13px;background:var(--amber-soft-bg);border:1px solid var(--amber-soft-line);border-radius:7px;color:var(--amber);font-size:10px;line-height:1.55}
.industry-note{color:var(--foot);font-size:10px;margin:15px 2px 0}
@media(max-width:1050px){.industry-summary{grid-template-columns:repeat(3,1fr)}.flow-bar-row{grid-template-columns:minmax(86px,135px) minmax(150px,1fr) 95px 120px}.subindustry-heatmap{grid-template-columns:repeat(3,minmax(0,1fr))}.subindustry-flow-row{grid-template-columns:minmax(106px,150px) minmax(150px,1fr) 92px minmax(150px,220px)}}
@media(max-width:760px){.industry-main{padding:30px 16px 50px}.industry-hero{align-items:flex-start;flex-direction:column}.industry-meta{width:100%;justify-content:space-between}.industry-summary{grid-template-columns:repeat(2,1fr)}.flow-bar-row,.subindustry-flow-row{grid-template-columns:1fr 86px;gap:7px}.flow-bar-track{grid-column:1/-1}.flow-bar-row em,.subindustry-flow-row em{text-align:left}.subindustry-heatmap{grid-template-columns:repeat(2,minmax(0,1fr))}.stock-leader-row{grid-template-columns:24px minmax(96px,1fr) 82px 82px}.stock-leader-row em{display:none}}
@media(max-width:480px){.industry-summary{grid-template-columns:1fr}.industry-meta{gap:12px;flex-wrap:wrap}.detail-head>strong{font-size:23px}.flow-bar-row,.subindustry-flow-row{grid-template-columns:1fr}.flow-bar-row strong,.flow-bar-row em,.subindustry-flow-row strong,.subindustry-flow-row em{text-align:left}.subindustry-heatmap{grid-template-columns:1fr}.stock-leader-row{grid-template-columns:24px 1fr 78px}.stock-leader-row span{display:none}}
/* ===== 公募偏股基金行业超配 ===== */
.fund-ow-panel{margin-top:18px}
.fund-ow-asof{align-self:flex-start;color:var(--muted);font-size:11px;white-space:nowrap}
.fund-ow-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px}
.fund-ow-row-empty{padding:14px;border:1px dashed var(--line-soft);border-radius:7px;color:var(--muted);font-size:11px;text-align:center}
.fund-ow-card{padding:14px;border:1px solid var(--line-soft);border-radius:9px;background:var(--tile-bg)}
.fund-ow-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.fund-ow-card-head h3{margin:0 0 4px;font-size:14px}
.fund-ow-card-head span{color:var(--muted);font-size:9px}
.fund-ow-rows{display:grid;gap:6px}
.fund-ow-row{display:grid;grid-template-columns:minmax(68px,100px) minmax(56px,1fr) 74px 108px;align-items:center;gap:10px;padding:7px 9px;border:1px solid var(--line-soft);border-radius:7px;background:var(--row-bg)}
.fund-ow-row:hover{border-color:var(--hover-border);background:var(--row-bg-strong)}
.fund-ow-row-name{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fund-ow-row strong{font-size:12px;text-align:right;white-space:nowrap}
.fund-ow-row em{color:var(--muted);font-size:9px;font-style:normal;text-align:right;white-space:nowrap}
.fund-ow-table-block{margin-top:18px}
.fund-ow-table-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:10px}
.fund-ow-table-head h3{margin:0 0 5px;font-size:14px}
.fund-ow-table-head span{color:var(--muted);font-size:9px}
.fund-ow-table{display:grid;gap:4px}
.fund-ow-thead,.fund-ow-trow{display:grid;grid-template-columns:30px minmax(74px,112px) minmax(108px,1fr) 74px 70px 78px 84px;align-items:center;gap:10px}
.fund-ow-thead{padding:0 9px 7px;color:var(--muted);font-size:9px;letter-spacing:.3px;border-bottom:1px solid var(--line-soft)}
.fund-ow-thead .c-num,.fund-ow-thead .c-band{text-align:right}
.fund-ow-trow{padding:7px 9px;border:1px solid var(--line-soft);border-radius:7px;background:var(--row-bg)}
.fund-ow-trow:hover{border-color:var(--hover-border);background:var(--row-bg-strong)}
.fund-ow-rank{display:grid;place-items:center;width:20px;height:20px;border-radius:999px;background:var(--line-soft);color:var(--text);font-size:9px;font-style:normal}
.fund-ow-trow .c-num{font-size:12px;text-align:right;white-space:nowrap}
.fund-ow-trow .c-name{font-size:12px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fund-ow-band{justify-self:end;padding:2px 7px;border-radius:999px;font-size:9px;font-style:normal;white-space:nowrap;border:1px solid transparent}
.fund-ow-band.big-over{color:var(--red-text);background:var(--red-soft-bg);border-color:var(--red-soft-line)}
.fund-ow-band.mid-over{color:var(--red-text);background:var(--red-soft-bg);border-color:var(--red-soft-line)}
.fund-ow-band.mild-over{color:var(--soft);background:var(--line-soft);border-color:var(--line-soft)}
.fund-ow-band.neutral{color:var(--soft2);background:var(--line-soft);border-color:var(--line-soft)}
.fund-ow-band.mild-under{color:var(--soft);background:var(--line-soft);border-color:var(--line-soft)}
.fund-ow-band.mid-under{color:var(--accent-text);background:var(--accent-soft-bg);border-color:var(--accent-soft-line)}
.fund-ow-band.big-under{color:var(--accent-text);background:var(--accent-soft-bg);border-color:var(--accent-soft-line)}
.fund-ow-empty{margin-top:16px;padding:16px;border:1px dashed var(--line-soft);border-radius:8px;background:var(--tile-bg);color:var(--muted);font-size:11px;text-align:center}
.fund-ow-note{color:var(--foot);font-size:10px;line-height:1.75;margin:14px 2px 0}
.fund-ow-note b{color:var(--muted);font-weight:650}
@media(max-width:1050px){.fund-ow-summary{grid-template-columns:repeat(2,1fr)}.fund-ow-lists{grid-template-columns:1fr}.fund-ow-thead,.fund-ow-trow{grid-template-columns:26px minmax(70px,104px) minmax(90px,1fr) 70px 64px 72px 78px}}
@media(max-width:760px){.fund-ow-table-head{align-items:flex-start;flex-direction:column;gap:8px}.fund-ow-thead{display:none}.fund-ow-trow{grid-template-columns:22px minmax(66px,1fr) 76px 62px;grid-template-areas:"rank name over wgt" "bar bar bar mkt";row-gap:7px}.fund-ow-trow .c-rank{grid-area:rank}.fund-ow-trow .c-name{grid-area:name}.fund-ow-trow .c-bar{grid-area:bar}.fund-ow-trow .c-over{grid-area:over}.fund-ow-trow .c-wgt{grid-area:wgt}.fund-ow-trow .c-mkt{grid-area:mkt}.fund-ow-trow .c-band{display:none}.fund-ow-trow .c-mkt::before{content:"mkt ";color:var(--muted)}.fund-ow-trow .c-wgt::before{content:"wgt_eq ";color:var(--muted)}.fund-ow-row{grid-template-columns:minmax(0,1fr) auto;row-gap:6px}.fund-ow-row-name{grid-column:1;grid-row:1}.fund-ow-row strong{grid-column:2;grid-row:1;text-align:right}.fund-ow-row .fund-ow-row-bar{grid-column:1/-1;grid-row:2}.fund-ow-row em{grid-column:1/-1;grid-row:3;text-align:right}}
@media(max-width:480px){.fund-ow-summary{grid-template-columns:1fr}}

/* ===== 行业资金流向走势（行业×交易日热力图） ===== */
.flow-trend-panel .panel-head{align-items:flex-start;gap:12px;flex-wrap:wrap}
.flow-metric-tabs{display:inline-flex;background:var(--row-bg-strong);border:1px solid var(--line);border-radius:9px;padding:3px;gap:3px}
.flow-metric-tabs .ft-tab{border:0;background:transparent;color:var(--muted);font-size:13px;padding:7px 14px;border-radius:7px;cursor:pointer;white-space:nowrap}
.flow-metric-tabs .ft-tab.active{background:var(--line);color:var(--text);font-weight:600}
.flow-metric-tabs .ft-tab.disabled{opacity:.38;cursor:not-allowed}
.flow-trend-controls{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;margin-bottom:14px}
.ft-seg{display:inline-flex;background:var(--row-bg-strong);border:1px solid var(--line);border-radius:8px;padding:2px;gap:2px}
.ft-seg-btn{border:0;background:transparent;color:var(--muted);font-size:12px;padding:5px 10px;border-radius:6px;cursor:pointer;white-space:nowrap}
.ft-seg-btn.active{background:var(--line);color:var(--text);font-weight:600}
.flow-trend-body{position:relative}
.flow-heat-wrap{position:relative}
.flow-heat-wrap[hidden]{display:none}
.flow-heat-wrap canvas{width:100%;height:100%;display:block;cursor:crosshair}
.flow-trend-tooltip{display:none;position:absolute;z-index:30;min-width:160px;max-width:300px;background:var(--tooltip-bg);border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:12px;color:var(--text);pointer-events:none;box-shadow:0 8px 24px rgba(0,0,0,.45)}
.flow-trend-tooltip .tt-date{color:var(--muted);font-size:11px;margin-bottom:5px}
.flow-trend-tooltip .tt-row{display:flex;align-items:center;gap:6px;padding:1.5px 0}
.flow-trend-tooltip .tt-row i{width:8px;height:8px;border-radius:2px;flex:0 0 auto}
.flow-trend-tooltip .tt-row span{flex:1 1 auto}
.flow-trend-tooltip .tt-row em{font-style:normal;color:var(--soft);white-space:nowrap}
.flow-trend-note{margin:14px 2px 0;color:var(--foot);font-size:10px;line-height:1.8}
@media(max-width:860px){.flow-metric-tabs{width:100%}.flow-metric-tabs .ft-tab{flex:1;padding:7px 6px}}
@media(max-width:760px){.flow-trend-controls{gap:6px 8px}.ft-seg-btn{padding:5px 8px;font-size:11px}}


