/* ---------- 管理仪表盘 ---------- */
.dash-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
/* 右上角日期区间：两个日期 + 查询，和「日/周/月」并排 */
.range-pick{display:flex;align-items:center;gap:6px;padding:4px;border:1px solid var(--line);
  border-radius:10px;background:var(--panel)}
.range-pick input{width:132px;height:30px;font-size:12px;border-radius:7px;border-color:transparent;background:var(--soft)}
.range-pick input:focus{border-color:var(--line3);background:var(--panel);box-shadow:none}
.range-pick .tilde{color:var(--txt3);font-size:12px}
.range-pick .btn{height:30px}
.range-pick.is-custom{border-color:var(--line-brand);background:var(--brand-d)}
.range-pick.is-custom input{background:var(--panel)}
.money-rail{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px}
.money-cell{text-align:left;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--soft)}
.money-cell i{display:block;font-style:normal;font-size:11.5px;color:var(--txt3)}
.money-cell b{display:block;margin-top:2px;font-size:19px;font-variant-numeric:tabular-nums}
.money-cell:not(.static):hover{border-color:var(--line2);background:var(--panel)}
.chart-empty{padding:40px;text-align:center;color:var(--txt3)}
/* C2.93：区间没数据时（尤其「今天」还没开张）把 280px 图位收成一行提示，别留一大块空白 */
#flow-chart.is-empty,#activity-chart.is-empty{height:110px;display:flex;align-items:center;justify-content:center}
#flow-chart.is-empty .chart-empty,#activity-chart.is-empty .chart-empty{padding:0}
.cell-link{background:none;border:none;padding:0;color:var(--txt);font:inherit;cursor:pointer;
  border-bottom:1px dashed transparent}
.cell-link:hover{color:var(--brand);border-bottom-color:var(--line-red)}
.ad-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.detail-scroll{max-height:540px;overflow:auto}
.chart-note{margin-top:9px;font-size:11.5px;color:var(--txt3)}

/* 阶段条：数字从图里拿出来，单独醒目展示 */
.stage-strip{display:grid;grid-template-columns:1fr 74px 1fr 74px 1fr;align-items:center;gap:4px;margin-bottom:6px}
.stage{text-align:left;border:1px solid var(--line);border-top:3px solid var(--line);background:var(--panel);
  border-radius:10px;padding:11px 14px 10px;transition:border-color .15s,box-shadow .15s}
.stage:hover{border-color:var(--line2);box-shadow:0 4px 14px rgba(16,24,40,.06)}
.stage i{display:block;font-style:normal;font-size:11.5px;color:var(--txt3);margin-bottom:1px}
.stage b{display:block;font-size:30px;font-weight:700;letter-spacing:-1px;line-height:1.15;
  font-variant-numeric:tabular-nums;color:var(--txt)}
.stage span{display:block;font-size:11px;color:var(--txt3);margin-top:1px}
.stage:nth-of-type(1){border-top-color:var(--amber)}
.stage:nth-of-type(2){border-top-color:var(--brand-2)}
.stage:nth-of-type(2) b{color:var(--amber)}
.stage:nth-of-type(3){border-top-color:var(--brand)}
.stage:nth-of-type(3) b{color:var(--brand)}
.stage-arrow{text-align:center}
.stage-arrow em{display:block;font-style:normal;font-weight:700;font-size:14px;color:var(--amber);
  font-variant-numeric:tabular-nums}
.stage-arrow span{display:block;font-size:10.5px;color:var(--txt3)}
.flow-chart{width:100%;height:280px;margin-top:2px}
.trend-chart{width:100%;height:310px}

@media(max-width:900px){
  .stage-strip{grid-template-columns:1fr;gap:6px}
  .stage-arrow{display:flex;align-items:center;justify-content:center;gap:6px;padding:1px 0}
  .stage-arrow em{font-size:12px}
  .flow-chart{height:340px}
  .trend-chart{height:280px}
}
.trend-chart{height:330px}
.stage b em{font-style:normal;font-size:12px;font-weight:500;color:var(--txt3);margin-left:3px;letter-spacing:0}

/* ---------- 仪表盘底部：前五排名（两块顶部对齐） ---------- */
.rank-grid{align-items:start}
.rank-card{height:100%}
.rank-tbl th.rank-col,.rank-tbl td.rank-col{width:38px;text-align:center;padding-left:4px;padding-right:4px}
.rank-no{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;
  background:var(--hover);color:var(--txt2);font-size:11.5px;font-weight:650}
.rank-no.top{background:var(--brand-d);color:var(--brand);border:1px solid var(--line-brand)}

/* ---------- 剪辑师/投流师「概况」（C2.31 / C2.89 / C2.98 / C2.101） ---------- */
/* C2.101：这条改成「广告账户」页顶部那条的同款内部结构——三段式，不再自己拼排版：
     ① .n  大号等宽金额（28px / mono / 品牌绿），金额就是这条的主视觉
     ② 文本块：.t 标签（15px / 650）+ .s 口径行（12.5px / 灰，上距 3px）
     ③ .ops 右侧操作组（状态小字 + 主按钮）
   容器（padding / 圆角 / 边框 / 渐变）本来就和广告账户那条共用 .act-hero，这里一行都不用写。
   金额字号、颜色、字体全部交给 .act-hero .n，本地只补「别换行别撑破」两件事。 */
.act-hero.ov-head{margin-bottom:10px}
.ov-head .ov-lead{min-width:0}
.ov-head .n{font-variant-numeric:tabular-nums;white-space:nowrap}
.ov-head .s{white-space:normal}

.ov-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
/* C2.95：四张周期卡与下面「投放曲线」是两张独立的卡，原来间距 0、边框贴成一条粗线；
   对齐全站 .card + .card 的 14px（只在下面真接着卡片时生效，剪辑师页没有曲线卡就不多留空） */
.ov-grid + .card{margin-top:14px}
.ov-card{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:12px 14px 13px}
/* 卡头：周期名 + 数字 + 单位，三者之间留出间距，别糊成一串 */
.ov-card-h{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}
.ov-card-h i{font-style:normal;font-size:12.5px;color:var(--txt2);font-weight:600}
.ov-card-h .ov-num{margin-left:auto;font-size:21px;font-weight:700;color:var(--txt);line-height:1.1;
  font-variant-numeric:tabular-nums}
.ov-card-h .ov-unit{font-size:11.5px;color:var(--txt3)}
/* 三项指标平铺：上标签下数值，各占一格，互不挤压 */
.ov-kv{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;border-top:1px dashed var(--line);padding-top:10px}
.ov-kv span{display:block;font-size:11px;color:var(--txt3);margin-bottom:3px}
.ov-kv b{font-size:13.5px;font-weight:650;color:var(--txt);font-variant-numeric:tabular-nums}
.ov-kv b.green{color:var(--green)}
.ov-foot{display:flex;align-items:baseline;gap:8px;margin-top:10px;padding-top:10px;
  border-top:1px dashed var(--line);font-size:12px;color:var(--txt2)}
.ov-foot b{margin-left:auto;font-size:13.5px;font-weight:650;color:var(--amber);font-variant-numeric:tabular-nums}
