/* =============================================================
   DASHBOARD
   ============================================================= */
.dash-hero {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  padding: var(--s-6) 18px var(--s-5);
  display: flex; align-items: center; gap: var(--s-4);
}
.hero-avatar {
  width: 72px; height: 72px; border-radius: var(--r-lg);
  background: var(--surface2); border: 2px solid var(--border);
  display: flex; align-items: center; justify-content: center;
  font-size: 2.4rem; flex-shrink: 0;
  transition: box-shadow var(--dur-slow) var(--ease), border-color var(--dur-slow) var(--ease);
}
.hero-info { flex: 1; }
.hero-greeting {
  font-family: var(--font-display);
  font-size: var(--fs-micro); color: var(--muted);
  text-transform: uppercase; letter-spacing: var(--tracking-wider);
  margin-bottom: 2px;
}
.hero-level {
  font-family: var(--font-mono);
  font-size: var(--fs-h1); line-height: 1; color: var(--text);
  font-variant-numeric: tabular-nums;
  margin-bottom: 2px;
}
.hero-level span { color: var(--primary); }
.hero-sub { font-size: var(--fs-small); color: var(--muted); }
.hero-streak {
  display: flex; flex-direction: column; align-items: center; gap: 0;
  flex-shrink: 0; padding: var(--s-2) var(--s-3);
  border-left: 1px solid var(--border);
}
.hero-streak-num {
  font-family: var(--font-mono);
  font-size: var(--fs-h2); line-height: 1;
  font-variant-numeric: tabular-nums;
}
.hero-streak-label {
  font-family: var(--font-display);
  font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: var(--tracking-wide);
  color: var(--muted);
}

/* dash-section nimmt verbleibenden Platz ein, damit auf kurzen Screens kein */
/* schwarzer Spalt zwischen Categories und BottomNav klafft. cat-grid bleibt */
/* oben — die Hoehe darunter ist freier Atemraum.                            */
.dash-section { padding: var(--s-5); flex: 1; }
.dash-section-label {
  font-family: var(--font-display);
  font-size: var(--fs-micro); letter-spacing: var(--tracking-wider); text-transform: uppercase;
  color: var(--muted); margin-bottom: var(--s-3);
  display: flex; justify-content: space-between; align-items: center;
}
.dash-section-label a {
  font-family: inherit; font-size: 10px; color: var(--primary);
  letter-spacing: var(--tracking-wider); cursor: pointer;
}

/* ── Kategorie-Karten ── */
.cat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); }
.cat-card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-md); padding: 14px 12px; text-align: left; width: 100%;
  border-left-width: 3px;
  transition: transform var(--dur-fast) var(--ease);
  position: relative; overflow: hidden;
}
.cat-card:active { transform: scale(0.96); }
.cat-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--s-3); }
.cat-card-emoji { font-size: 1.7rem; }
.cat-done-badge {
  font-family: var(--font-display);
  font-size: var(--fs-micro); padding: 2px 7px; border-radius: var(--r-sm);
  background: var(--surface2);
  font-variant-numeric: tabular-nums;
}
.cat-name { font-family: var(--font-display); font-size: var(--fs-small); margin-bottom: var(--s-2); letter-spacing: var(--tracking-normal); }
.cat-bar { height: 3px; border-radius: 0; background: var(--border); overflow: hidden; }
.cat-bar-fill { height: 100%; transition: width var(--dur-slow) var(--ease); }

/* (Dash XP-Banner entfernt — XP/Level-Info steht schon in der TopBar.) */
