/* 驾驶舱 */
.dash-hero {
  position: relative;
  overflow: hidden;
  padding: 0;
  margin-bottom: 18px;
  border: 1px solid var(--border);
}
.dash-hero-sky { position: absolute; inset: 0; }
.dash-hero-sky svg { width: 100%; height: 100%; display: block; }
.dash-hero-sky::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(245, 243, 240, 0.96) 0%, rgba(245, 243, 240, 0.82) 34%, rgba(245, 243, 240, 0.1) 62%, transparent 100%);
}
.dash-hero-copy {
  position: relative;
  padding: 26px 28px 22px;
  display: flex;
  align-items: flex-end;
  gap: 28px;
  min-height: 130px;
}
.dash-hero-copy .view-title,
.dash-hero-copy .view-sub { text-shadow: 0 1px 6px rgba(245, 243, 240, 0.9); }
.dash-hero-metric {
  margin-left: auto;
  text-align: right;
  background: rgba(255, 255, 255, 0.78);
  backdrop-filter: blur(4px);
  border: 1px solid var(--border);
  border-radius: var(--r-m);
  padding: 10px 16px;
}
.dash-hero-metric .num {
  display: block;
  font-size: 30px;
  font-weight: 800;
  color: #2E6B44;
  line-height: 1.1;
}
.dash-hero-metric small { font-size: 11px; color: var(--ink-2); letter-spacing: 0.1em; }

.dash-stats { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.dash-stats .stat-value { font-size: 24px; }

.dash-mid { grid-template-columns: 1.9fr 1fr; }
.dash-bottom { grid-template-columns: 1.9fr 1fr; }

.dash-map-wrap { position: relative; }
.dash-map-stats {
  position: absolute;
  left: 0;
  top: 8px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.map-stat {
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid var(--border);
  border-left: 3px solid var(--idle);
  border-radius: var(--r-s);
  padding: 8px 12px;
  box-shadow: var(--shadow-rest);
  display: flex;
  flex-direction: column;
  line-height: 1.4;
  min-width: 132px;
}
.map-stat small { font-size: 11px; color: var(--ink-3); font-weight: 600; }
.map-stat strong { font-size: 17px; font-weight: 800; }
.map-stat strong em { font-style: normal; font-size: 11px; font-weight: 500; color: var(--ink-3); }
.map-stat span { font-size: 11px; color: var(--ink-2); }

.sankey-hint { font-size: 11.5px; color: var(--ink-3); margin-top: 6px; }

.table-scroll { overflow-x: auto; }
.rank-badge {
  display: inline-grid;
  place-items: center;
  width: 20px; height: 20px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  background: var(--idle-bg);
  color: var(--ink-2);
}
.rank-badge.r1 { background: var(--brand-grad); color: #fff; }
.rank-badge.r2 { background: #E7C88A; color: #6E4A0C; }
.rank-badge.r3 { background: var(--wake-bg); color: #9A6613; }
.rank-total td { background: var(--surface-warm); border-bottom: 0; }

@media (max-width: 1360px) {
  .dash-stats { grid-template-columns: repeat(3, 1fr); }
  .dash-mid, .dash-bottom { grid-template-columns: 1fr; }
}
