diff --git a/apps/web/src/lib/ui/data/TaskItem.svelte b/apps/web/src/lib/ui/data/TaskItem.svelte index 7e6fa07..bcd1f25 100644 --- a/apps/web/src/lib/ui/data/TaskItem.svelte +++ b/apps/web/src/lib/ui/data/TaskItem.svelte @@ -250,7 +250,7 @@ {groupLabel} {#if completed} {:else} @@ -330,7 +330,7 @@ {#if !editing} @@ -455,11 +455,14 @@ .actions { justify-self: center; - justify-content: space-between; - align-content: space-between; grid-column: 2/3; grid-row: 3/4; margin-bottom: 4px; + display: flex; + flex-wrap: wrap; + gap: 6px; + align-items: center; + justify-content: flex-end; } .btn { padding: 4px 8px; @@ -503,6 +506,17 @@ padding: 4px 6px; font-size: 14px; } + @media (max-width: 768px) { + .actions { + justify-self: stretch; + } + .actions .primary-action { + flex: 1 1 100%; + } + .actions .secondary-action { + flex: 0 0 auto; + } + } @media (max-width: 480px) { .task { grid-template-columns: 1fr; diff --git a/apps/web/src/lib/ui/feedback/Toast.svelte b/apps/web/src/lib/ui/feedback/Toast.svelte index e0fd209..d55934b 100644 --- a/apps/web/src/lib/ui/feedback/Toast.svelte +++ b/apps/web/src/lib/ui/feedback/Toast.svelte @@ -52,6 +52,12 @@ .close:focus-visible { background: rgba(0,0,0,0.06); } + /* Evitar solape con tabbar móvil */ + @media (max-width: 768px) { + .toast-region { + bottom: calc(16px + 48px + env(safe-area-inset-bottom)); + } + } @media (prefers-color-scheme: dark) { .close:hover, .close:focus-visible { background: rgba(255,255,255,0.08); } diff --git a/apps/web/src/lib/ui/layout/AppShell.svelte b/apps/web/src/lib/ui/layout/AppShell.svelte index 9cf18a8..abff8dc 100644 --- a/apps/web/src/lib/ui/layout/AppShell.svelte +++ b/apps/web/src/lib/ui/layout/AppShell.svelte @@ -22,6 +22,25 @@ + +