.dashboard-grid { display:grid; grid-template-columns:1fr; gap:var(--space-4,1rem); }
.dashboard-card { grid-column:1 / -1; background:var(--color-surface,#fff); border:1px solid var(--color-border,#ddd); border-radius:var(--radius-lg,.75rem); padding:1.25rem; }
.dashboard-card-image { display:block; width:100%; max-height:18rem; object-fit:cover; border-radius:.4rem; }
.dashboard-links { list-style:none; margin:0; padding:0; } .dashboard-links li { padding:.5rem 0; }
.progress { height:.7rem; background:#e5e7eb; border-radius:999px; overflow:hidden; } .progress span { display:block; height:100%; background:var(--color-primary,#2563eb); }
.dashboard-card-picker { display:grid; grid-template-columns:repeat(auto-fit,minmax(12rem,1fr)); gap:1rem; } .card-picker-item { display:grid; gap:.25rem; padding:1rem; border:1px solid var(--color-border,#ddd); border-radius:.5rem; }
.card-picker-item span { color:var(--color-text-muted,#666); font-size:.9rem; } .editor-card { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--color-border,#ddd); } .editor-actions { display:flex; gap:.4rem; flex-wrap:wrap; }
@media (min-width: 701px) {
  .dashboard-grid { grid-template-columns:repeat(12,minmax(0,1fr)); }
  .dashboard-card-half { grid-column:span 6; }
  .dashboard-card-third { grid-column:span 4; }
}
@media (max-width: 700px) { .editor-card { align-items:flex-start; flex-direction:column; } }
/* Card rows lay out each field on its own line or column; the templates keep
   whitespace between fields so the accessible text never runs together. */
.dashboard-meetings, .dashboard-leaderboard { list-style:none; margin:0; padding:0; display:grid; gap:var(--space-3,.75rem); }
.dashboard-meetings li { display:grid; gap:var(--space-1,.25rem); min-width:0; overflow-wrap:anywhere; }
.dashboard-meetings time, .dashboard-meetings span { color:var(--color-text-secondary); }
/* Wraps instead of fixed columns so the count drops to its own line at 200% text on a phone. */
.dashboard-leaderboard li { display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--space-1,.25rem) var(--space-3,.75rem); }
.dashboard-leaderboard li strong { flex:1 1 8rem; min-width:0; overflow-wrap:anywhere; }
.dashboard-leaderboard-rank { min-width:2ch; font-variant-numeric:tabular-nums; font-weight:var(--weight-bold,700); }
.dashboard-leaderboard-count { color:var(--color-text-secondary); }
