.dash-screen { align-items: stretch; }
.dash-filters {
  display: flex; flex-wrap: wrap; gap: var(--s2); padding: var(--s3);
  background: var(--surface); border-bottom: 1px solid var(--border); flex: none;
}
.dash-filters select, .dash-filters input {
  min-height: var(--tap); padding: 0 var(--s2); border: 1px solid var(--border); border-radius: var(--r); font-size: 14px;
}
.dash-body { flex: 1; overflow-y: auto; padding: var(--s3); }
.dash-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s2); margin-bottom: var(--s4); }
@media (min-width: 640px) { .dash-cards { grid-template-columns: repeat(3, 1fr); } }
.dash-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--r);
  padding: var(--s3); display: flex; flex-direction: column; gap: var(--s1);
}
.dash-card-label { font-size: 12px; color: var(--ink-soft); font-weight: 600; }
.dash-card-value { font-size: 22px; font-weight: 700; font-variant-numeric: tabular-nums; }
.dash-card-pct { font-size: 12px; font-weight: 700; }
.dash-card-pct.is-up { color: var(--success-strong); }
.dash-card-pct.is-down { color: var(--danger); }
.dash-section { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); padding: var(--s3); margin-bottom: var(--s3); }
.dash-section h2 { font-size: 14px; margin: 0 0 var(--s2); }
.dash-section-head { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); flex-wrap: wrap; }
.dash-section-head h2 { margin: 0 0 var(--s2); }
.dash-section-head select {
  min-height: var(--tap); padding: 0 var(--s2); border: 1px solid var(--border); border-radius: var(--r); font-size: 13px;
}
.dash-subchart { margin-top: var(--s3); padding-top: var(--s3); border-top: 1px solid var(--border); }
.dash-subchart h3 { font-size: 12px; color: var(--ink-soft); margin: 0 0 var(--s2); font-weight: 600; }
.dash-pattern-header { background: none; border: none; padding: var(--s2) 0 0; margin-bottom: 0; }
.dash-pattern-header h2 { font-size: 16px; color: var(--brand); }
.heatmap { display: grid; grid-template-columns: repeat(12, 1fr); gap: 2px; }
.heatmap-cell { aspect-ratio: 1; border-radius: 4px; display: flex; align-items: center; justify-content: center; font-size: 10px; color: #fff; }
