diff --git a/web/src/pages/NotificationsPage.tsx b/web/src/pages/NotificationsPage.tsx index bfdc892d..1d267da2 100644 --- a/web/src/pages/NotificationsPage.tsx +++ b/web/src/pages/NotificationsPage.tsx @@ -194,10 +194,17 @@ function NotificationCard({ notif }: { notif: Notification }) {
-
-
-
- {priorityDot && } + {/* The badge column is shrink-0, so beside the text it costs a fixed + ~127px — over a third of the card on a phone, which left the body + wrapping at ~190px. Below `sm` the badges take a row of their own + above the title instead, and the text gets the full card width. */} +
+
+ {/* items-start, not items-center: a title long enough to wrap was + centring the priority dot against the whole block, leaving it + floating beside the second line. */} +
+ {priorityDot && }

{notif.title}

{notif.body && ( @@ -209,7 +216,7 @@ function NotificationCard({ notif }: { notif: Notification }) {

)}
-
+
{(notif.redelivery_count ?? 0) > 0 && ( -
+
{showSilences && } {loading ? (
Loading...
diff --git a/web/src/pages/PlansPage.tsx b/web/src/pages/PlansPage.tsx index 11fa6607..942f6260 100644 --- a/web/src/pages/PlansPage.tsx +++ b/web/src/pages/PlansPage.tsx @@ -83,7 +83,7 @@ export function PlansPage() { ))} /> -
+
{loading ? (
Loading...
) : plans.length === 0 ? ( diff --git a/web/src/pages/TasksPage.tsx b/web/src/pages/TasksPage.tsx index 646ebf80..e3447e6d 100644 --- a/web/src/pages/TasksPage.tsx +++ b/web/src/pages/TasksPage.tsx @@ -229,7 +229,7 @@ export function TasksPage() { // and no max-width — filling the viewport is the whole point. ) : ( -
+
{loading ? (
Loading...
) : tasks.length === 0 ? (