/* ROI 仪表台柱状图（innerHTML 注入，不能依赖 Vue scoped） */
.dashbd-charts{color:#303133}
.dashbd-charts .muted{color:#909399;font-size:13px;margin:0}
.dashbd-charts .chart-plot-inner{display:flex;align-items:stretch;gap:10px;min-height:228px;overflow:hidden}
.dashbd-charts .chart-y-axis{display:flex;flex-direction:column;justify-content:space-between;width:36px;font-size:11px;color:#9ca3af;text-align:right;padding-bottom:26px;flex-shrink:0}
.dashbd-charts .chart-bars-wrap{flex:1;min-width:0;border-left:1px solid #e8ecf1;border-bottom:1px solid #e8ecf1;padding:0 6px 0 10px}
.dashbd-charts .chart-bars-wrap.chart-bars-fit{padding-bottom:26px}
.dashbd-charts .growth-chart{display:flex;align-items:stretch;justify-content:space-between;gap:8px;height:220px;padding-top:8px;min-width:0}
.dashbd-charts .growth-chart.dense{width:100%;max-width:100%;gap:1px;height:188px}
.dashbd-charts .gcol{flex:1;text-align:center;display:flex;flex-direction:column;align-items:center;min-width:0;cursor:default}
.dashbd-charts .growth-chart.dense .gcol{position:relative;flex:1 1 0;max-width:none;height:188px;justify-content:flex-end}
.dashbd-charts .gbars{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:3px;width:100%;min-height:120px}
.dashbd-charts .growth-chart.dense .gbars{min-height:150px}
.dashbd-charts .gbar{border-radius:4px 4px 0 0;min-height:2px;transition:background .12s}
.dashbd-charts .gbar.o{background:#0891b2;width:55%;max-width:22px}
.dashbd-charts .growth-chart.dense .gbar.o{width:72%;max-width:14px}
.dashbd-charts .gcol:hover .gbar.o{background:#f97316}
.dashbd-charts .gbar.m{background:#2d3f8c;width:28%;max-width:14px}
.dashbd-charts .gbar.q{background:#7c3aed;width:28%;max-width:14px}
.dashbd-charts .gbar.y{background:#22d3ee;width:28%;max-width:14px}
.dashbd-charts-growth .gbar.spec-bar{width:auto;flex:1;max-width:12px;min-width:3px;border-radius:3px 3px 0 0}
.dashbd-charts-growth .gbar.spec-bar[data-chart-tip]{cursor:default}
.dashbd-charts-growth .gbar.spec-bar{position:relative}
.dashbd-charts-growth .gbar.spec-bar::before{content:"";position:absolute;left:-4px;right:-4px;top:0;bottom:0}
.dashbd-charts-growth .gbars{gap:2px}
.dashbd-charts .glabel{font-size:12px;color:#909399;margin-top:8px;white-space:nowrap;line-height:1.2;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.dashbd-charts.scan-daily .glabel,.dashbd-charts.scan-daily .glabel-rot,
.dashbd-charts.revenue-daily .glabel,.dashbd-charts.revenue-daily .glabel-rot{overflow:visible;max-width:none;text-overflow:clip}
.dashbd-charts .chart-bars-wrap.chart-bars-fit{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:26px}
.dashbd-charts .growth-chart.dense{min-width:720px;gap:3px;height:200px}
.dashbd-charts .growth-chart.dense .gcol{position:relative;min-width:22px;flex:0 0 22px;height:188px;justify-content:flex-end}
.dashbd-charts .growth-chart.dense .gbars{min-height:150px}
.dashbd-charts .growth-chart.dense .glabel-rot{position:absolute;left:0;right:0;bottom:-22px;height:18px;margin:0;pointer-events:none;text-align:center}
.dashbd-charts .growth-chart.dense .glabel-rot span{display:inline-block;font-size:9px;font-weight:500;color:#64748b;white-space:nowrap;line-height:1;letter-spacing:-.02em}
.dashbd-charts.scan-monthly .growth-chart{justify-content:space-between;gap:10px}
.dashbd-charts.scan-monthly .gcol{min-width:56px;flex:1 1 56px;max-width:88px}
.dashbd-charts.scan-monthly .glabel{font-size:11px}
.dashbd-charts-growth .growth-chart{height:220px}
.glegend{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;line-height:1.45}
.glegend.glegend-many{max-height:84px;overflow-y:auto;padding-right:6px;-webkit-overflow-scrolling:touch}
.glegend.glegend-compact{font-size:11px;gap:8px 12px;max-height:96px}
.glegend .glegend-item{display:inline-flex;align-items:center;gap:6px;max-width:100%}
.glegend .glegend-dot{display:inline-block;width:10px;height:10px;border-radius:2px;flex-shrink:0}
.glegend .glegend-label{white-space:nowrap}
.dashbd-charts-growth.growth-many .chart-bars-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px}
.dashbd-charts-growth.growth-many .growth-many-chart{gap:6px;height:220px}
.dashbd-charts-growth.growth-many .growth-many-chart .gcol{flex:0 0 auto;min-width:var(--growth-col-min,56px);max-width:none}
.dashbd-charts-growth.growth-many .growth-many-chart .gbar.spec-bar{min-width:4px;max-width:9px}
.dashbd-charts-growth.growth-many .growth-many-chart .gbars{gap:1px}
.dashbd-charts-growth.growth-many .growth-many-chart .glabel{font-size:11px}
#dash-chart-tooltip.dash-chart-tooltip{position:fixed;z-index:10050;padding:6px 10px;background:rgba(30,41,59,.92);color:#fff;font-size:12px;border-radius:6px;pointer-events:none;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.15)}
#dash-chart-tooltip.dash-chart-tooltip.hide{display:none}

/* 会员列表剩余天数排序（表头在 el-table 内，需全局样式） */
.members-sort-bar,.members-sort-head{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.members-sort-title{font-size:13px;font-weight:600;color:#303133;white-space:nowrap}
.members-sort-btn{border:1px solid #dcdfe6;background:#fff;color:#606266;border-radius:4px;padding:2px 10px;height:26px;line-height:22px;font-size:12px;cursor:pointer;white-space:nowrap}
.members-sort-btn.members-sort-btn-sm{padding:0 6px;height:22px;line-height:20px;font-size:11px}
.members-sort-btn.is-active{border-color:#409eff;color:#409eff;background:#ecf5ff;font-weight:600}
.members-sort-btn:hover{border-color:#409eff;color:#409eff}
.paid-members-table th .cell{overflow:visible!important}
