/* ============================================================================
   Start / Dashboard — Tagesüberblick mit Hero, Kacheln, Agenda, Schnellzugriff
   ============================================================================ */

.dash{display:flex;flex-direction:column;gap:18px}

/* ── Hero: Markenverlauf (ESG-Indigo), Begrüßung + Fortschrittsring ────── */
.dash-hero{
  position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:26px 28px;border-radius:var(--r-xl);color:#fff;
  background:
    radial-gradient(90% 140% at 88% -20%, rgba(253,82,102,.28) 0%, rgba(253,82,102,0) 55%),
    radial-gradient(80% 120% at -10% 110%, rgba(97,120,254,.45) 0%, rgba(97,120,254,0) 60%),
    linear-gradient(135deg, #3B38A0 0%, #312F80 48%, #232159 100%);
  box-shadow:var(--sh-2);
}
:root[data-theme="dark"] .dash-hero{
  background:
    radial-gradient(90% 140% at 88% -20%, rgba(253,82,102,.20) 0%, rgba(253,82,102,0) 55%),
    radial-gradient(80% 120% at -10% 110%, rgba(97,120,254,.35) 0%, rgba(97,120,254,0) 60%),
    linear-gradient(135deg, #2A2870 0%, #232159 48%, #16142F 100%);
  border:1px solid var(--border);
}
.dash-hero-txt{position:relative;z-index:1;min-width:0}
.dash-kicker{margin:0;font-size:13px;font-weight:650;letter-spacing:.02em;color:rgba(255,255,255,.72);text-transform:capitalize}
.dash-hero h1{color:#fff;font-size:26px;letter-spacing:-.025em;margin-top:4px}
.dash-sum{margin:7px 0 0;font-size:14px;font-weight:600;color:rgba(255,255,255,.82)}
.dash-hero-btn{
  margin-top:16px;background:#fff;color:var(--indigo);font-weight:700;
  box-shadow:0 6px 20px rgba(0,0,0,.22);
}
.dash-hero-btn:hover{background:#F0F0FA;transform:translateY(-1px)}
.dash-hero-ring{
  position:relative;z-index:1;flex:none;display:flex;flex-direction:column;
  align-items:center;gap:2px;color:#fff;
}
.dash-ring text{fill:#fff;font-family:var(--font-display);font-size:19px;font-weight:800;letter-spacing:-.02em}
.dash-ring-lbl{font-size:11.5px;font-weight:650;color:rgba(255,255,255,.72);letter-spacing:.04em;text-transform:uppercase}

/* ── Chat-Leiste — direkt unter dem Hero, auf jedem Gerät ohne Scrollen
   sichtbar (bewusst außerhalb des zweispaltigen Grids, das auf Mobile
   umbricht und den Schnellzugriff sonst ans Seitenende schieben würde) ── */
.dash-chat-strip{
  display:flex;align-items:center;gap:13px;width:100%;text-align:left;
  padding:13px 16px;border-radius:var(--r-lg);background:var(--surface);
  border:1px solid var(--border);cursor:pointer;transition:.15s;
}
.dash-chat-strip:hover{border-color:var(--border-strong);box-shadow:var(--sh-2);transform:translateY(-1px)}
.dash-chat-strip.unread{border-color:color-mix(in srgb,var(--coral) 40%,var(--border));background:color-mix(in srgb,var(--coral) 5%,var(--surface))}
.dash-chat-ic{
  position:relative;flex:none;width:40px;height:40px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);
}
.dash-chat-strip.unread .dash-chat-ic{background:var(--pri-high-bg);color:var(--pri-high)}
.dash-chat-badge{
  position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;
  border-radius:99px;background:#ef4444;color:#fff;font-size:11px;font-weight:800;
  display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2.5px var(--surface);
}
.dash-chat-txt{display:flex;flex-direction:column;gap:1px;min-width:0}
.dash-chat-title{font-size:14.5px;font-weight:700;color:var(--text);letter-spacing:-.01em}
.dash-chat-sub{font-size:12.5px;font-weight:600;color:var(--text-3)}
.dash-chat-strip.unread .dash-chat-sub{color:var(--pri-high)}
.dash-chat-go{margin-left:auto;flex:none;color:var(--text-3)}

/* ── Nächste Aufgabe (nur Handy) — ersetzt die vollen Listen "Deine
   Aufgaben"/"Im Team offen" durch eine einzige Vorschau; Antippen öffnet
   die komplette Liste im Vollbild (Tab "Aufgaben"). Gleiches Muster wie
   die Chat-Leiste, damit es sich wie eine Familie von Kurzübersichten
   anfühlt statt wie ein neues Element. ─────────────────────────────────── */
.dash-next-task{
  display:flex;align-items:center;gap:13px;width:100%;text-align:left;
  padding:13px 16px;border-radius:var(--r-lg);background:var(--surface);
  border:1px solid var(--border);cursor:pointer;transition:.15s;
}
.dash-next-task:hover{border-color:var(--border-strong);box-shadow:var(--sh-2);transform:translateY(-1px)}
.dash-next-task.overdue{border-color:color-mix(in srgb,var(--pri-high) 40%,var(--border));background:color-mix(in srgb,var(--pri-high) 5%,var(--surface))}
.dash-next-task-ic{
  flex:none;width:40px;height:40px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);
}
.dash-next-task.overdue .dash-next-task-ic{background:var(--pri-high-bg);color:var(--pri-high)}
.dash-next-task.high .dash-next-task-ic{background:var(--pri-high-bg);color:var(--pri-high)}
.dash-next-task.empty .dash-next-task-ic{background:var(--st-done-bg);color:var(--st-done)}
.dash-next-task-txt{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.dash-next-task-title{font-size:14.5px;font-weight:700;color:var(--text);letter-spacing:-.01em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-next-task-sub{font-size:12.5px;font-weight:600;color:var(--text-3)}
.dash-next-task.overdue .dash-next-task-sub{color:var(--pri-high)}
.dash-next-task-go{margin-left:auto;flex:none;color:var(--text-3)}

/* ── Shortcuts (Klassenliste/Kontaktliste) — direkt unter der Chat-Leiste,
   ebenfalls auf jedem Gerät ohne Scrollen sichtbar ─────────────────────── */
.dash-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dash-shortcut-btn{
  display:flex;align-items:center;gap:11px;width:100%;text-align:left;
  padding:12px 14px;border-radius:var(--r-lg);background:var(--surface);
  border:1px solid var(--border);cursor:pointer;transition:.15s;
}
.dash-shortcut-btn:hover{border-color:var(--border-strong);box-shadow:var(--sh-2);transform:translateY(-1px)}
.dash-shortcut-ic{
  flex:none;width:36px;height:36px;border-radius:11px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);
}
.dash-shortcut-lbl{flex:1;min-width:0;font-size:13.5px;font-weight:700;color:var(--text)}
.dash-shortcut-go{flex:none;color:var(--text-3)}

/* ── Status-Kacheln ────────────────────────────────────────────────────── */
.dash-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.dash-tile{
  display:flex;align-items:center;gap:12px;min-width:0;
  padding:14px 16px;border-radius:var(--r-lg);background:var(--surface);
  border:1px solid var(--border);cursor:pointer;transition:.15s;text-align:left;
}
.dash-tile-txt{min-width:0;flex:1}
.dash-tile:hover{border-color:var(--border-strong);box-shadow:var(--sh-2);transform:translateY(-2px)}
.dash-tile:hover .dash-tile-go{opacity:1;transform:translateX(0)}
.dash-tile-ic{
  width:38px;height:38px;border-radius:12px;flex:none;
  display:flex;align-items:center;justify-content:center;
}
.tile-todo    .dash-tile-ic{background:var(--st-todo-bg);color:var(--st-todo)}
.tile-prog    .dash-tile-ic{background:var(--st-prog-bg);color:var(--st-prog)}
.tile-overdue .dash-tile-ic{background:var(--pri-high-bg);color:var(--pri-high)}
.tile-done    .dash-tile-ic{background:var(--st-done-bg);color:var(--st-done)}
.dash-tile-val{font-size:22px;font-weight:800;color:var(--text);letter-spacing:-.02em;line-height:1.1;font-family:var(--font-display)}
.dash-tile-lbl{font-size:12.5px;font-weight:600;color:var(--text-3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-tile.warn{border-color:color-mix(in srgb,var(--pri-high) 35%,var(--border))}
.dash-tile.warn .dash-tile-val{color:var(--pri-high)}
.dash-tile-go{
  margin-left:auto;color:var(--text-3);opacity:0;transform:translateX(-4px);
  transition:.15s;display:flex;
}

/* ── Grid: Aufgaben links, Agenda/Schnellzugriff rechts ───────────────── */
.dash-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:16px;align-items:start}
.dash-main-col,.dash-side-col{display:flex;flex-direction:column;gap:16px;min-width:0}

.dash-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);
  padding:16px;display:flex;flex-direction:column;gap:10px;min-width:0;
}
.dash-card-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.dash-card-h h2{font-size:15px}
.dash-card-body{display:flex;flex-direction:column;gap:8px}
.dash-card-body .trow{margin-bottom:0}
.dash-empty{padding:18px 4px;text-align:center;color:var(--text-3);font-size:13.5px}

/* ── Agenda „Demnächst fällig" ─────────────────────────────────────────── */
.dash-agenda{display:flex;flex-direction:column;gap:4px}
.dash-ag-row{
  display:flex;align-items:center;gap:11px;width:100%;text-align:left;
  padding:7px 8px;border-radius:var(--r-sm);border:none;background:transparent;
  cursor:pointer;transition:.13s;color:var(--text);
}
.dash-ag-row:hover{background:var(--surface-3)}
.dash-day{
  width:36px;height:38px;border-radius:10px;flex:none;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);line-height:1.05;
}
.dash-day b{font-size:14.5px;font-weight:800;font-variant-numeric:tabular-nums}
.dash-day i{font-style:normal;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;opacity:.85}
.dash-day.over{background:var(--pri-high-bg);color:var(--pri-high)}
.dash-ag-tt{flex:1;min-width:0;font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-ag-row.over .dash-ag-tt{color:var(--text-2)}
.dash-ag-tag{
  flex:none;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;
  padding:2px 7px;border-radius:99px;background:var(--pri-high-bg);color:var(--pri-high);
}
.dash-ag-tag.today{background:var(--accent-soft);color:var(--accent)}

/* ── Schnellzugriff ────────────────────────────────────────────────────── */
.dash-quick{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dash-quick-btn{
  position:relative;display:flex;align-items:center;gap:9px;width:100%;text-align:left;
  padding:9px 10px;border-radius:var(--r-sm);background:transparent;
  border:1px solid var(--border);color:var(--text-2);font-size:13.5px;font-weight:600;
  cursor:pointer;transition:.13s;min-width:0;
}
.dash-quick-btn:hover{background:var(--accent-soft);color:var(--accent)}
.dash-quick-ic{
  width:32px;height:32px;border-radius:10px;flex:none;
  display:flex;align-items:center;justify-content:center;
  background:var(--surface-3);color:var(--text-2);transition:.13s;
}
.dash-quick-btn:hover .dash-quick-ic{background:var(--accent);color:var(--accent-ink)}
.dash-quick-btn .grow{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-quick-go{flex:none;color:var(--text-3);opacity:.6}
.dash-quick-badge{
  min-width:18px;height:18px;padding:0 5px;border-radius:99px;
  background:#ef4444;color:#fff;font-size:10.5px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
}

/* ── Responsive ────────────────────────────────────────────────────────── */
@media (max-width:1020px){
  .dash-grid{grid-template-columns:1fr}
}
@media (max-width:900px){
  .dash-tiles{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:599px){
  .dash-hero{padding:20px;gap:14px}
  .dash-hero h1{font-size:21px}
  .dash-hero-ring{display:none}
  /* Offen/In Bearbeitung/Überfällig/Erledigt: auf dem Handy ausgeblendet —
     die Zahlen stehen ohnehin schon oben in der Begrüßung/Summary-Zeile. */
  .dash-tiles{display:none}
  /* Klassenliste/Kontaktliste + Kalender/Notizen bleiben nebeneinander,
     nur kompakter statt gestapelt — spart vertikalen Platz. */
  .dash-shortcuts{gap:8px}
  .dash-shortcut-btn{padding:10px 10px;gap:8px}
  .dash-shortcut-ic{width:30px;height:30px;border-radius:9px}
  .dash-shortcut-lbl{font-size:12.5px}
  .dash-shortcut-go{display:none}
  .dash-quick-btn{padding:8px;font-size:12.5px}
  .dash-quick-ic{width:28px;height:28px}
  .dash-quick-go{display:none}
}
@media (max-width:360px){
  .dash-shortcut-lbl{font-size:12px}
}
