/* Fan-App-Rahmen (Issue #58): NUR in der installierten Fan-App (html.is-app, früh im <head> gesetzt → kein Flackern).
   Gemeinsam für Astro-Seiten (BaseLayout) und PHP-Fan-Seiten (mv_app_head() in api/_util.php: termin.php, Newsletter-Seiten).
   Markup: src/components/AppTabs.astro + mv_app_tabs() (Zwillinge, gleich halten). Im Browser bleibt alles unverändert.
   Bauprinzip wie die Tab-Leiste der Band-App (admin/assets/app.css .tabs): fest unten, Icon + Beschriftung, aktive Farbe, Safe-Area. */
.apptabs,.appbar,.applogo{display:none}
.is-app{--apptab-h:64px}
/* Issue #61: Leiste ist direktes Kind von <body>, ohne transformierte/gefilterte Vorfahren. KEIN backdrop-filter mehr:
   iOS-WebKit setzt eine feste Ebene mit Hintergrund-Unschärfe beim Scrollen (zusammen mit der animierten Hero-Ebene)
   an der falschen Stelle zusammen – die Leiste „wanderte“ mit dem Inhalt. Deckender Hintergrund, eigene Ebene ohne Effekte. */
.is-app .apptabs{display:block; position:fixed; inset:auto 0 calc(-1 * var(--vpgap,0px)) 0; z-index:60; /* --vpgap: Issue #73, public/vpfix.js */ margin:0;
  background:var(--bg,#0c1017); border-top:1px solid var(--line,rgba(255,255,255,.14)); padding-bottom:env(safe-area-inset-bottom,0px)}
.apptabs .in{max-width:620px; margin:0 auto; display:flex; height:var(--apptab-h)}
.apptabs a{flex:1 1 0; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; padding:0 2px;
  color:var(--muted,#a3b1c4); font:700 11.5px/1.1 "Archivo Variable","Archivo",system-ui,sans-serif; letter-spacing:0; text-decoration:none; -webkit-tap-highlight-color:transparent}
.apptabs a span{white-space:nowrap; max-width:100%}
.apptabs a:hover{color:var(--ink,#eef3fa)}
.apptabs a[aria-current=page]{color:var(--brand,#5aa2ef)}
.apptabs a:focus-visible{outline:3px solid var(--brand,#5aa2ef); outline-offset:-4px; border-radius:12px}
.apptabs svg{flex:none; width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round}
.apptabs svg.sig{fill:currentColor; stroke:none; width:24px; height:26px} /* Fanclub-Tab: V-Signet aus der Original-Wortmarke */
/* Platz für die Leiste; Kopfzeile, großer Fuß und „Nächster Gig“-Leiste entfallen in der App (Inhalte über Tabs/„Mehr“) */
.is-app body{min-height:100dvh; padding-bottom:calc(var(--apptab-h) + env(safe-area-inset-bottom,0px))}
/* Dauer-Animationen hinter der festen Leiste aus (Hero-Drift auf Termin-/Newsletter-Seiten) – ruhigeres Zusammensetzen auf iOS */
.is-app .hero picture img{animation:none !important}
.is-app header#top,.is-app #scrim,.is-app #drawer,.is-app footer.site,.is-app .stickycta{display:none !important}
.is-app .toast{bottom:calc(var(--apptab-h) + env(safe-area-inset-bottom,0px) + 16px) !important}
/* Titelzeile auf Unterseiten: scrollt mit, Zurück + kleine Wortmarke (Marke bleibt sichtbar, ohne Kopfleiste) */
.is-app .appbar{display:flex; align-items:center; gap:12px; max-width:1180px; margin:0 auto; padding:calc(env(safe-area-inset-top,0px) + 10px) 16px 4px}
.is-app .appbar .wmlink{display:block; line-height:0; color:var(--brand,#5aa2ef); margin-left:auto}
.is-app .appbar .wm{height:34px; width:auto; fill:currentColor}
.is-app .appbar.root{min-height:54px}
.is-app .appbar.root .wmlink{margin-left:0}
/* Fanclub-Start: Wortmarke groß oben im Inhalt (scrollt mit) */
.is-app .applogo{display:flex; justify-content:center; padding:calc(env(safe-area-inset-top,0px) + 22px) 16px 0}
.is-app .applogo .wm{height:64px; width:auto; color:var(--brand,#5aa2ef); fill:currentColor}
@media (prefers-reduced-motion:no-preference){ .apptabs a{transition:color .15s} }
.is-app .applogo + main > .section:first-child,.is-app .appbar + main > .section:first-child{padding-top:24px}
