diff --git a/apps/web/src/lib/ui/layout/AppShell.svelte b/apps/web/src/lib/ui/layout/AppShell.svelte index 828d3fd..9a87534 100644 --- a/apps/web/src/lib/ui/layout/AppShell.svelte +++ b/apps/web/src/lib/ui/layout/AppShell.svelte @@ -1,6 +1,13 @@
@@ -18,6 +25,11 @@
+ + + @@ -43,6 +55,12 @@ 📅 Calendarios +
+ +
@@ -123,6 +141,11 @@ padding-bottom: var(--space-4); } + /* Barra superior móvil oculta por defecto */ + .mobile-topbar { + display: none; + } + /* Barra de pestañas inferior (solo móvil) */ .tabbar { position: fixed; @@ -139,10 +162,11 @@ @media (max-width: 768px) { .tabbar { display: grid; - grid-template-columns: repeat(4, 1fr); + grid-template-columns: repeat(5, 1fr); align-items: center; } - .tabbar a { + .tabbar a, + .tabbar button { display: inline-flex; align-items: center; justify-content: center; @@ -150,6 +174,15 @@ padding: 6px 8px; color: inherit; text-decoration: none; + background: transparent; + border: none; + } + .tabbar form.logout-tab { + display: flex; + align-items: center; + justify-content: center; + margin: 0; + padding: 0; } .tabbar a.active { color: var(--color-primary); @@ -163,8 +196,9 @@ font-size: 12px; line-height: 1; } - /* Reservar espacio en el main para no tapar contenido */ + /* Reservar espacio en el main para no tapar contenido y la barra superior */ .main { + padding-top: calc(var(--space-4) + 44px + env(safe-area-inset-top)); padding-bottom: calc(var(--space-4) + 48px + env(safe-area-inset-bottom)); } } @@ -173,4 +207,25 @@ display: none; } } + + /* Ocultar header y mostrar topbar en móvil */ + @media (max-width: 768px) { + .app-header { display: none; } + .mobile-topbar { + display: block; + position: sticky; + top: 0; + z-index: 12; + background: var(--color-surface); + border-bottom: 1px solid var(--color-border); + min-height: 44px; + padding-top: env(safe-area-inset-top); + } + .mobile-topbar .topbar-inner { + display: flex; + align-items: center; + min-height: 44px; + font-weight: 600; + } + } diff --git a/apps/web/src/routes/+layout.svelte b/apps/web/src/routes/+layout.svelte index 5dd0f87..2e4d676 100644 --- a/apps/web/src/routes/+layout.svelte +++ b/apps/web/src/routes/+layout.svelte @@ -12,26 +12,36 @@ {#if dev}
+ aria-live="polite"> Modo desarrollo: auth bypass activo
{/if} + +