/* Lumenya Portal — Layout */
.app { max-width: var(--maxw-app); margin: 0 auto; padding: var(--sp-4) var(--sp-4) calc(var(--tabbar-h) + var(--safe-bottom) + var(--sp-5)); min-height: 60vh; }
.page-auth .app { padding-bottom: var(--sp-7); }
.page-hd-report .app { padding-bottom: calc(var(--tabbar-h) + var(--sticky-cta-h) + var(--safe-bottom) + var(--sp-5)); }
.page-dashboard .app { padding-bottom: calc(var(--tabbar-h) + var(--safe-bottom) + var(--sp-7)); }

/* Tab Bar */
.tabbar { position: fixed; bottom: 0; left: 0; right: 0; background: var(--bg-card); border-top: 1px solid var(--surface-line); display: flex; justify-content: space-around; padding: var(--sp-2) 0 calc(var(--sp-2) + var(--safe-bottom)); z-index: 60; max-width: var(--maxw-app); margin: 0 auto; backdrop-filter: blur(12px); }
.tabbar__item { display: flex; flex-direction: column; align-items: center; gap: 2px; color: var(--fg-muted); font-size: 10px; text-decoration: none; padding: var(--sp-1) var(--sp-3); border-radius: var(--r-md); transition: var(--transition); min-width: 56px; }
.tabbar__item:hover { text-decoration: none; color: var(--fg-secondary); }
.tabbar__item.is-active { color: var(--accent-gold); }
.tabbar__icon { font-size: 22px; line-height: 1; }
.tabbar__label { font-weight: 500; }

/* Desktop fallback: Wenn Breite > 640px, zentriere die App und mach Tab-Bar sticky-bottom */
@media (min-width: 641px) {
  body { display: flex; justify-content: center; }
  .tabbar { box-shadow: 0 -4px 24px rgba(0,0,0,0.2); }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
