diff --git a/frontend/src/client/dashboard.ts b/frontend/src/client/dashboard.ts
index b7fb4ec..3e58a5f 100644
--- a/frontend/src/client/dashboard.ts
+++ b/frontend/src/client/dashboard.ts
@@ -17,12 +17,6 @@ interface DeadlineSummary {
later: number;
}
-interface AppointmentSummary {
- today: number;
- this_week: number;
- later: number;
-}
-
interface MatterSummary {
active: number;
archived: number;
@@ -66,7 +60,6 @@ interface ActivityEntry {
interface DashboardData {
user: DashboardUser | null;
deadline_summary: DeadlineSummary;
- appointment_summary: AppointmentSummary;
matter_summary: MatterSummary;
upcoming_deadlines: UpcomingDeadline[];
upcoming_appointments: UpcomingAppointment[];
@@ -105,7 +98,6 @@ function render(): void {
if (!data) return;
renderGreeting(data.user);
renderSummary(data.deadline_summary);
- renderAppointmentSummary(data.appointment_summary);
renderMatters(data.matter_summary);
renderDeadlines(data.upcoming_deadlines);
renderAppointments(data.upcoming_appointments);
@@ -152,12 +144,6 @@ function renderSummary(s: DeadlineSummary): void {
overdueCard.classList.toggle("dashboard-card-alarm", s.overdue > 0);
}
-function renderAppointmentSummary(s: AppointmentSummary): void {
- setCount("dashboard-count-appt-today", s.today);
- setCount("dashboard-count-appt-this-week", s.this_week);
- setCount("dashboard-count-appt-later", s.later);
-}
-
function renderMatters(s: MatterSummary): void {
setCount("dashboard-matter-active", s.active);
setCount("dashboard-matter-archived", s.archived);
diff --git a/frontend/src/client/events.ts b/frontend/src/client/events.ts
index 608f086..35d98f5 100644
--- a/frontend/src/client/events.ts
+++ b/frontend/src/client/events.ts
@@ -718,7 +718,15 @@ function applyTypeVisibility() {
toggleFilterPair("events-filter-status", !isAppointment);
// Event-type multi-select also deadline-only (appointments have no event_types).
toggleFilterPair("events-filter-event-type", !isAppointment, "events-filter-event-type-label");
- toggleDisplay("events-filter-event-type-panel", !isAppointment, "block");
+ // The panel is a popup the trigger owns via `panel.hidden`. Never stamp
+ // `display: block` on it from the type filter — that overrides the
+ // `.multi-panel[hidden]` CSS rule and leaves the panel visible on larger
+ // screens. When switching to appointment view, force-close it.
+ const eventTypePanel = document.getElementById("events-filter-event-type-panel") as HTMLElement | null;
+ if (eventTypePanel) {
+ eventTypePanel.style.display = "";
+ if (isAppointment) eventTypePanel.hidden = true;
+ }
// Termin-Typ is appointment-only.
toggleFilterPair("events-filter-appointment-type", !isDeadline);
diff --git a/frontend/src/dashboard.tsx b/frontend/src/dashboard.tsx
index 5ebd8c1..cf9591d 100644
--- a/frontend/src/dashboard.tsx
+++ b/frontend/src/dashboard.tsx
@@ -86,27 +86,6 @@ export function renderDashboard(): string {
- {/* Termine summary rail — 3 cards: Heute · Diese Woche · Später (t-paliad-110) */}
-
-
- Termine auf einen Blick
-
-
-
-
{/* Matter summary card */}