.zelden-pwa-install-button{margin-left:.5rem;white-space:nowrap;box-shadow:0 10px 28px rgba(15,23,42,.12);transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease;}
.zelden-pwa-install-button:hover{transform:translateY(-1px);box-shadow:0 16px 38px rgba(15,23,42,.18);}
.zelden-pwa-install-button[hidden]{display:none!important;}
.zelden-pwa-status{position:fixed;right:1rem;bottom:1rem;z-index:10000;max-width:min(92vw,420px);padding:.85rem 1rem;border-radius:999px;background:rgba(15,23,42,.94);color:#fff;box-shadow:0 18px 48px rgba(15,23,42,.28);font-size:.92rem;font-weight:700;}
html[data-zelden-pwa="standalone"] body{overscroll-behavior-y:contain;}
@media(max-width:720px){.zelden-pwa-install-button{width:100%;justify-content:center;margin:.75rem 0 0}.zelden-pwa-status{left:1rem;right:1rem;text-align:center;}}


/* PWA standalone back navigation v2.14.96 */
.zelden-pwa-back-button{position:fixed;left:max(1rem,env(safe-area-inset-left));bottom:max(1rem,env(safe-area-inset-bottom));z-index:9998;display:inline-flex;align-items:center;gap:.45rem;min-height:2.75rem;padding:.55rem .9rem .55rem .72rem;border:1px solid rgba(148,163,184,.34);border-radius:999px;background:rgba(15,23,42,.92);color:#fff;box-shadow:0 18px 48px rgba(15,23,42,.28);font-weight:800;letter-spacing:.01em;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease,background .18s ease;}
.zelden-pwa-back-button:hover{transform:translateY(-1px);box-shadow:0 22px 56px rgba(15,23,42,.34);background:rgba(15,23,42,.96);}
.zelden-pwa-back-button:focus-visible{outline:3px solid rgba(59,130,246,.38);outline-offset:3px;}
.zelden-pwa-back-button.is-pressed{transform:translateY(1px) scale(.985);box-shadow:0 12px 30px rgba(15,23,42,.24);}
.zelden-pwa-back-button[hidden]{display:none!important;}
.zelden-pwa-back-button__icon{display:grid;place-items:center;width:1.45rem;height:1.45rem;border-radius:999px;background:rgba(255,255,255,.14);font-size:1.45rem;line-height:1;margin-top:-.05rem;}
.zelden-pwa-back-button__label{font-size:.92rem;line-height:1;}
html[data-zelden-pwa-back="available"] body{padding-bottom:calc(env(safe-area-inset-bottom) + .25rem);}
@media(max-width:720px){.zelden-pwa-back-button{left:max(.85rem,env(safe-area-inset-left));bottom:max(.85rem,env(safe-area-inset-bottom));min-height:2.65rem;padding:.5rem .82rem .5rem .64rem}.zelden-pwa-back-button__label{font-size:.88rem}.zelden-pwa-status{bottom:calc(max(1rem,env(safe-area-inset-bottom)) + 3.35rem);}}
@media(prefers-reduced-motion:reduce){.zelden-pwa-back-button,.zelden-pwa-install-button{transition:none!important;}}


/* PWA standalone UX polish v2.14.96 */
html[data-zelden-pwa-safe-area="enabled"] body{padding-top:max(0px,env(safe-area-inset-top));}
.zelden-pwa-connection-banner{position:fixed;left:50%;top:max(.85rem,env(safe-area-inset-top));z-index:10002;display:flex;align-items:center;gap:.65rem;max-width:min(92vw,680px);transform:translateX(-50%);padding:.78rem 1rem;border:1px solid rgba(250,204,21,.34);border-radius:999px;background:rgba(120,53,15,.96);color:#fff;box-shadow:0 20px 58px rgba(15,23,42,.34);font-size:.92rem;line-height:1.25;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);}
.zelden-pwa-connection-banner[hidden]{display:none!important;}
.zelden-pwa-connection-banner strong{font-weight:900;white-space:nowrap;}
.zelden-pwa-connection-banner span{opacity:.92;}
.zelden-pwa-mode-chip{position:fixed;right:max(1rem,env(safe-area-inset-right));top:max(1rem,env(safe-area-inset-top));z-index:10001;max-width:min(86vw,360px);padding:.68rem .9rem;border:1px solid rgba(148,163,184,.28);border-radius:999px;background:rgba(15,23,42,.92);color:#fff;box-shadow:0 18px 48px rgba(15,23,42,.26);font-size:.88rem;font-weight:800;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);}
.zelden-pwa-mode-chip[hidden]{display:none!important;}
html[data-zelden-pwa-network="offline"] .zelden-pwa-back-button{bottom:calc(max(1rem,env(safe-area-inset-bottom)) + .25rem);}
@media(max-width:720px){.zelden-pwa-connection-banner{left:max(.85rem,env(safe-area-inset-left));right:max(.85rem,env(safe-area-inset-right));top:max(.7rem,env(safe-area-inset-top));transform:none;align-items:flex-start;border-radius:22px;flex-direction:column;gap:.25rem}.zelden-pwa-mode-chip{left:max(.85rem,env(safe-area-inset-left));right:max(.85rem,env(safe-area-inset-right));top:auto;bottom:calc(max(.85rem,env(safe-area-inset-bottom)) + 3.55rem);text-align:center}.zelden-pwa-status{bottom:calc(max(1rem,env(safe-area-inset-bottom)) + 6.5rem);}}
@media(prefers-reduced-motion:reduce){.zelden-pwa-connection-banner,.zelden-pwa-mode-chip{transition:none!important;}}


/* PWA top-right logout action v2.14.96 */
.zelden-pwa-logout-action{position:fixed;right:max(1rem,env(safe-area-inset-right));top:max(.9rem,env(safe-area-inset-top));z-index:10006;display:inline-flex;align-items:center;justify-content:center;gap:.48rem;min-height:42px;padding:.62rem .9rem;border:1px solid rgba(248,113,113,.34);border-radius:999px;background:linear-gradient(135deg,rgba(127,29,29,.96),rgba(185,28,28,.92));color:#fff;font-size:.9rem;font-weight:900;letter-spacing:.01em;box-shadow:0 18px 48px rgba(127,29,29,.28),0 8px 22px rgba(15,23,42,.22);cursor:pointer;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease,filter .18s ease;}
.zelden-pwa-logout-action:hover{transform:translateY(-1px);box-shadow:0 22px 58px rgba(127,29,29,.34),0 10px 26px rgba(15,23,42,.24);}
.zelden-pwa-logout-action:active{transform:translateY(0) scale(.98);}
.zelden-pwa-logout-action[hidden]{display:none!important;}
.zelden-pwa-logout-action:disabled{cursor:wait;opacity:.78;filter:saturate(.82);}
.zelden-pwa-logout-action__icon{font-size:1rem;line-height:1;}
.zelden-pwa-logout-action__label{line-height:1;}
html[data-zelden-pwa-logout="visible"] .zelden-pwa-mode-chip{right:max(1rem,env(safe-area-inset-right));top:calc(max(.9rem,env(safe-area-inset-top)) + 3.25rem);}
.zelden-pwa-logout-toast{position:fixed;right:max(1rem,env(safe-area-inset-right));top:calc(max(.9rem,env(safe-area-inset-top)) + 3.25rem);z-index:10005;max-width:min(88vw,360px);padding:.72rem .95rem;border:1px solid rgba(148,163,184,.28);border-radius:18px;background:rgba(15,23,42,.94);color:#fff;box-shadow:0 18px 48px rgba(15,23,42,.28);font-size:.88rem;font-weight:800;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);}
.zelden-pwa-logout-toast.is-error{border-color:rgba(248,113,113,.44);background:rgba(127,29,29,.96);}
@media(max-width:720px){.zelden-pwa-logout-action{right:max(.75rem,env(safe-area-inset-right));top:max(.65rem,env(safe-area-inset-top));min-height:40px;padding:.58rem .76rem}.zelden-pwa-logout-action__label{display:none}.zelden-pwa-logout-action__icon{font-size:1.05rem}html[data-zelden-pwa-logout="visible"] .zelden-pwa-connection-banner{top:calc(max(.65rem,env(safe-area-inset-top)) + 3.1rem)}html[data-zelden-pwa-logout="visible"] .zelden-pwa-mode-chip{top:auto;right:max(.85rem,env(safe-area-inset-right));bottom:calc(max(.85rem,env(safe-area-inset-bottom)) + 3.55rem)}.zelden-pwa-logout-toast{left:max(.85rem,env(safe-area-inset-left));right:max(.85rem,env(safe-area-inset-right));top:calc(max(.65rem,env(safe-area-inset-top)) + 3.15rem);text-align:center}}
@media(prefers-reduced-motion:reduce){.zelden-pwa-logout-action{transition:none!important;}}


/* PWA mobile hamburger menu guard v2.14.96
 * Haertet die mobile App-Shell gegen PWA-Floating-Actions: Hamburger bleibt klickbar,
 * Navigation liegt oberhalb normaler Inhalte, Logout weicht auf Mobile aus.
 */
@media (max-width:760px){
  .topbar{position:relative;z-index:10004;padding-top:calc(.62rem + env(safe-area-inset-top));}
  #mobileNavToggle.mobile-nav-toggle{position:relative;z-index:10009;touch-action:manipulation;pointer-events:none;min-width:44px;min-height:44px;-webkit-tap-highlight-color:rgba(255,255,255,.16);}
  #mobileNavToggle.mobile-nav-toggle.is-open,.mobile-nav-toggle[aria-expanded="true"]{border-color:rgba(255,255,255,.46);background:rgba(255,255,255,.18);box-shadow:0 10px 30px rgba(15,23,42,.24);}
  #mainTabs.tabs{position:relative;z-index:10007;}
  body.mobile-nav-open #mainTabs.tabs{pointer-events:none;}
  body.mobile-nav-open #mainTabs.tabs .tab,body.mobile-nav-open #mainTabs.tabs .logout-link{pointer-events:none;}
  .zelden-pwa-logout-action{z-index:10003;top:calc(max(.65rem,env(safe-area-inset-top)) + 3.15rem);right:max(.75rem,env(safe-area-inset-right));}
  html[data-zelden-pwa-logout="visible"] .zelden-pwa-connection-banner{top:calc(max(.65rem,env(safe-area-inset-top)) + 6.35rem);}
  .zelden-pwa-logout-toast{top:calc(max(.65rem,env(safe-area-inset-top)) + 6.35rem);}
}
@media (max-width:420px){
  .topbar{grid-template-columns:minmax(0,1fr) auto;}
  .topbar-brand-copy h1{max-width:46vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  #mobileNavToggle .mobile-nav-label{display:none;}
}

/* PWA mobile start-route menu visual normalization v2.14.96
 * Grund: Der Primary-Navigation-Slider misst seine Position beim Erststart teilweise noch im
 * geschlossenen mobilen Menue. Dadurch kann die Start-Navigation anders aussehen als nach
 * einem spaeteren Routenwechsel wie Admin. Der Mobile-Guard synchronisiert beim Oeffnen neu;
 * diese CSS-Regeln halten den geschlossenen/offenen Zustand zusaetzlich eindeutig.
 */
@media (max-width:760px){
  html[data-zelden-mobile-nav="closed"] #mainTabs.tabs .z-primary-nav-slider{opacity:0;}
  body.mobile-nav-open #mainTabs.tabs[data-z-slider-ready="1"]{overflow:visible;}
  body.mobile-nav-open #mainTabs.tabs[data-z-slider-ready="1"] .z-primary-nav-slider{opacity:1;pointer-events:none;}
  body.mobile-nav-open #mainTabs.tabs[data-z-slider-ready="1"][data-z-slider-booting="1"] .z-primary-nav-slider{transition:none;}
  body.mobile-nav-open #mainTabs.tabs .tab.active,
  body.mobile-nav-open #mainTabs.tabs .tab[aria-current="page"]{color:#0f172a;}
  body.mobile-nav-open #mainTabs.tabs .tab.active .z-primary-nav-label,
  body.mobile-nav-open #mainTabs.tabs .tab[aria-current="page"] .z-primary-nav-label{position:relative;z-index:3;}
}


/* PWA mobile shell label contract v2.14.98
 * Die Hauptnavigation bleibt im neutralen App-Shell-Vertrag wie beim Start:
 * Start, Katalog, Montage, Suche, Admin, Updates. Beta-Fokus darf den Header
 * und die Topnavigation nicht mehr sichtbar umbeschriften.
 */
body.zelden-shell-menu-contract.zelden-beta-focus .topbar h1::after{content:none!important;display:none!important;}
body.zelden-shell-menu-contract .topbar-brand-copy h1{display:block;}
body.zelden-shell-menu-contract .tabs .tab[data-route="katalog"],
body.zelden-shell-menu-contract .tabs .tab[data-route="suche"],
body.zelden-shell-menu-contract .tabs .tab[data-route="start"],
body.zelden-shell-menu-contract .tabs .tab[data-route="montage"],
body.zelden-shell-menu-contract .tabs .tab[data-route="admin"],
body.zelden-shell-menu-contract .tabs .tab[data-route="admin/system/updates"]{white-space:nowrap;}
body.zelden-shell-menu-contract.zelden-beta-focus .tabs .tab[data-view="homeView"],
body.zelden-shell-menu-contract.zelden-beta-focus .tabs .tab[data-view="catalogView"]{font-weight:700;}
@media(max-width:760px){
  body.zelden-shell-menu-contract .topbar-brand-copy p{max-width:68vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  body.zelden-shell-menu-contract #mainTabs.tabs .tab{min-width:auto;}
}


/* PWA start shell beta header alignment v2.14.99
 * Der Startzustand bekommt denselben sichtbaren Header-/Menuevertrag wie die
 * funktionierende Katalog-/Beta-Ansicht, ohne MutationObserver oder DOM-Loop.
 */
.zelden-start-beta-shell .zelden-shell-beta-badge{display:inline-flex;margin-left:.75rem;padding:.24rem .55rem;border-radius:999px;font-size:.72rem;line-height:1;background:rgba(20,160,145,.12);color:#0f766e;vertical-align:middle;letter-spacing:.03em;font-weight:900;}
.zelden-start-beta-shell .topbar-brand-copy p{color:rgba(226,232,240,.92);}
.zelden-start-beta-shell .tabs .tab[data-view="homeView"],
.zelden-start-beta-shell .tabs .tab[data-view="catalogView"]{font-weight:800;}
@media(max-width:760px){
  .zelden-start-beta-shell .zelden-shell-beta-badge{margin-left:.5rem;font-size:.68rem;padding:.22rem .48rem;}
  .zelden-start-beta-shell .topbar-brand-copy h1{display:flex;align-items:center;gap:.2rem;min-width:0;flex-wrap:wrap;}
  .zelden-start-beta-shell .topbar-brand-copy p{max-width:68vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
}


/* PWA logout topbar harmony v2.15.00
 * Ziel: Logout rechts oben optisch beruhigen, doppelte Beta-Badges vermeiden und
 * der Hauptnavigation genug Platz lassen, damit der Updates-Shortcut nicht unter
 * dem Logout-Button verschwindet.
 */
.topbar-brand-copy h1 .zelden-shell-beta-badge + .zelden-shell-beta-badge{display:none!important;}
@media (min-width:761px){
  html[data-zelden-pwa-logout="visible"] .topbar{padding-right:12.25rem;}
  html[data-zelden-pwa-logout="visible"] #mainTabs.tabs{margin-right:11.5rem;max-width:calc(100% - 11.5rem);}
  .zelden-pwa-logout-action{top:4.55rem;right:max(1rem,env(safe-area-inset-right));min-height:44px;padding:.58rem .88rem;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(15,23,42,.36);color:#f8fafc;font-size:.88rem;font-weight:850;box-shadow:0 12px 26px rgba(15,23,42,.18);}
  .zelden-pwa-logout-action:hover{transform:translateY(-1px);background:rgba(15,23,42,.46);box-shadow:0 16px 34px rgba(15,23,42,.22);}
  .zelden-pwa-logout-action:active{transform:translateY(0) scale(.98);}
  .zelden-pwa-logout-action__label{letter-spacing:0;}
  .zelden-pwa-logout-toast{top:7.85rem;}
}
@media (max-width:760px){
  .zelden-pwa-logout-action{background:rgba(15,23,42,.42);border-color:rgba(255,255,255,.18);box-shadow:0 10px 22px rgba(15,23,42,.18);}
}


/* App account/logout shell v2.15.01
 * Navigation bleibt mittig; rechts wird der eingeloggte Mandant mit einem kleinen Logout-Icon angezeigt.
 * Der Bereich ist in normaler App und PWA sichtbar, sobald /api/auth/me eine aktive Session meldet.
 */
.zelden-app-account-cluster{position:fixed;right:max(1rem,env(safe-area-inset-right));top:max(1.2rem,env(safe-area-inset-top));z-index:10008;display:inline-flex;align-items:center;gap:.62rem;max-width:min(30vw,360px);padding:.44rem .48rem .44rem .72rem;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(15,23,42,.38);color:#f8fafc;box-shadow:0 14px 34px rgba(15,23,42,.18);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);}
.zelden-app-account-cluster[hidden]{display:none!important;}
.zelden-app-account-cluster__copy{display:flex;flex-direction:column;min-width:0;line-height:1.05;}
.zelden-app-account-cluster__caption{font-size:.62rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:rgba(226,232,240,.72);}
.zelden-app-account-cluster__tenant{max-width:12.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:950;color:#fff;}
.zelden-app-account-cluster__user{max-width:12.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:.12rem;font-size:.72rem;font-weight:750;color:rgba(226,232,240,.78);}
.zelden-app-account-cluster__logout.zelden-pwa-logout-action{position:static;right:auto;top:auto;transform:none;display:inline-flex;align-items:center;justify-content:center;flex:0 0 2.35rem;width:2.35rem;min-width:2.35rem;height:2.35rem;min-height:2.35rem;margin:0;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.10);color:#fff;box-shadow:none;font-size:1rem;}
.zelden-app-account-cluster__logout.zelden-pwa-logout-action:hover{transform:none;background:rgba(255,255,255,.18);box-shadow:0 10px 24px rgba(15,23,42,.20);}
.zelden-app-account-cluster__logout.zelden-pwa-logout-action:active{transform:scale(.97);}
.zelden-app-account-cluster__logout-icon{line-height:1;}
html[data-zelden-account-visible="1"] .zelden-pwa-mode-chip{right:max(1rem,env(safe-area-inset-right));top:calc(max(1.2rem,env(safe-area-inset-top)) + 3.35rem);}
@media (min-width:1180px){
  html[data-zelden-account-visible="1"] .topbar{position:relative;padding-right:18.5rem;}
  html[data-zelden-account-visible="1"] #mainTabs.tabs{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;max-width:calc(100vw - 46rem);}
  html[data-zelden-account-visible="1"] #mainTabs.tabs .tab{white-space:nowrap;}
}
@media (max-width:1179px) and (min-width:761px){
  html[data-zelden-account-visible="1"] .topbar{padding-right:15.5rem;}
  html[data-zelden-account-visible="1"] #mainTabs.tabs{margin-right:0;max-width:calc(100vw - 32rem);}
  .zelden-app-account-cluster{max-width:14rem;}
  .zelden-app-account-cluster__tenant,.zelden-app-account-cluster__user{max-width:8.5rem;}
}
@media (max-width:760px){
  .zelden-app-account-cluster{right:max(.75rem,env(safe-area-inset-right));top:max(.62rem,env(safe-area-inset-top));max-width:calc(100vw - 5.9rem);padding:.36rem .4rem .36rem .58rem;gap:.48rem;}
  .zelden-app-account-cluster__caption{display:none;}
  .zelden-app-account-cluster__tenant{max-width:8.5rem;font-size:.82rem;}
  .zelden-app-account-cluster__user{display:none;}
  .zelden-app-account-cluster__logout.zelden-pwa-logout-action{width:2.15rem;min-width:2.15rem;height:2.15rem;min-height:2.15rem;}
  html[data-zelden-account-visible="1"] .topbar-brand-copy h1{max-width:42vw;}
}


/* PWA install chip topbar alignment v2.15.02
 * Der Installieren-Button wird als dezenter App-Chip rechts platziert und aus der
 * mittigen Hauptnavigation herausgenommen.
 */
.zelden-pwa-install-chip,
.zelden-pwa-install-button.zelden-pwa-install-chip{
  position:fixed;
  right:calc(max(1rem,env(safe-area-inset-right)) + 13.2rem);
  top:max(1.42rem,env(safe-area-inset-top));
  z-index:10007;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.34rem;
  width:auto;
  min-width:0;
  min-height:2.25rem;
  padding:.44rem .66rem;
  margin:0;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:rgba(15,23,42,.24);
  color:rgba(248,250,252,.92);
  box-shadow:0 10px 24px rgba(15,23,42,.14);
  font-size:.78rem;
  font-weight:850;
  letter-spacing:.01em;
  white-space:nowrap;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.zelden-pwa-install-chip:hover,
.zelden-pwa-install-button.zelden-pwa-install-chip:hover{
  transform:translateY(-1px);
  background:rgba(15,23,42,.34);
  box-shadow:0 14px 30px rgba(15,23,42,.18);
}
.zelden-pwa-install-chip[hidden],
.zelden-pwa-install-button.zelden-pwa-install-chip[hidden]{display:none!important;}
.zelden-pwa-install-chip__icon{font-size:.92rem;line-height:1;opacity:.9;}
.zelden-pwa-install-chip__label{line-height:1;}
@media (min-width:1180px){
  html[data-zelden-account-visible="1"] #mainTabs.tabs{max-width:calc(100vw - 50rem);}
}
@media (max-width:1179px) and (min-width:761px){
  .zelden-pwa-install-chip,
  .zelden-pwa-install-button.zelden-pwa-install-chip{
    right:calc(max(1rem,env(safe-area-inset-right)) + 11.2rem);
    top:max(1.45rem,env(safe-area-inset-top));
    padding:.42rem .58rem;
  }
}
@media (max-width:760px){
  .zelden-pwa-install-chip,
  .zelden-pwa-install-button.zelden-pwa-install-chip{
    right:calc(max(.75rem,env(safe-area-inset-right)) + 3rem);
    top:max(.7rem,env(safe-area-inset-top));
    min-height:2.1rem;
    padding:.34rem .48rem;
    font-size:.74rem;
  }
  html[data-zelden-account-visible="1"] .zelden-pwa-install-chip,
  html[data-zelden-account-visible="1"] .zelden-pwa-install-button.zelden-pwa-install-chip{
    display:none!important;
  }
}


/* App shell topbar badge cleanup + menu row alignment v2.15.03
 * Entfernt sichtbare Doppel-Badges im Header und haertet die Desktop-Topbar,
 * damit Hauptnavigation dauerhaft mittig/waagrecht bleibt.
 */
body.zelden-beta-focus .topbar h1::after{content:none!important;display:none!important;}
.topbar-brand-copy .zelden-shell-beta-badge ~ .zelden-shell-beta-badge{display:none!important;}
html[data-zelden-topbar-polished="1"] .topbar-brand-copy .zelden-shell-beta-badge ~ .zelden-shell-beta-badge{display:none!important;}
@media (min-width:980px){
  html[data-zelden-account-visible="1"] .topbar{position:relative;align-items:center;padding-right:21.5rem;min-height:5.45rem;}
  html[data-zelden-account-visible="1"] #mainTabs.tabs{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;justify-content:center;flex-wrap:nowrap;gap:.3rem;width:max-content;margin:0;max-width:calc(100vw - 47rem);}
  html[data-zelden-account-visible="1"] #mainTabs.tabs .tab{display:inline-flex;align-items:center;justify-content:center;align-self:center;min-height:3rem;white-space:nowrap;}
  html[data-zelden-account-visible="1"] .zelden-pwa-install-chip,
  html[data-zelden-account-visible="1"] .zelden-pwa-install-button.zelden-pwa-install-chip{right:calc(max(1rem,env(safe-area-inset-right)) + 15.9rem);top:max(1.38rem,env(safe-area-inset-top));}
}
@media (min-width:761px) and (max-width:979px){
  html[data-zelden-account-visible="1"] .topbar{padding-right:15.5rem;align-items:center;}
  html[data-zelden-account-visible="1"] #mainTabs.tabs{display:inline-flex;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:.24rem;max-width:calc(100vw - 31rem);}
  html[data-zelden-account-visible="1"] #mainTabs.tabs .tab{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;}
}


/* PWA topbar tablet polish v2.15.04
 * Feinschliff fuer mittlere Breiten: Navigation, App-Chip und Mandant/Logout
 * werden balanciert, ohne DOM-Observer, Backend- oder Auth-Eingriff.
 */
@media (min-width:980px) and (max-width:1280px){
  html[data-zelden-account-visible="1"] .topbar{
    display:grid;
    grid-template-columns:minmax(16rem,1fr) auto minmax(13.5rem,1fr);
    align-items:center;
    column-gap:clamp(.5rem,1.2vw,1rem);
    min-height:5.35rem;
    padding-right:clamp(12.4rem,19vw,17.2rem);
  }
  html[data-zelden-account-visible="1"] .topbar-brand{
    min-width:0;
    justify-self:start;
  }
  html[data-zelden-account-visible="1"] .topbar-brand-copy h1{
    white-space:nowrap;
  }
  html[data-zelden-account-visible="1"] .topbar-brand-copy p{
    max-width:min(30vw,26rem);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  html[data-zelden-account-visible="1"] #mainTabs.tabs{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    transform:none!important;
    justify-self:center;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex-wrap:nowrap;
    gap:.26rem;
    width:max-content;
    max-width:clamp(27rem,46vw,42rem);
    margin:0;
    overflow:hidden;
  }
  html[data-zelden-account-visible="1"] #mainTabs.tabs .tab{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:2.75rem;
    padding:.46rem clamp(.46rem,.8vw,.72rem);
    font-size:clamp(.86rem,1.2vw,1rem);
    white-space:nowrap;
  }
  html[data-zelden-account-visible="1"] #mainTabs.tabs .update-header-shortcut{
    display:inline-flex;
  }
  html[data-zelden-account-visible="1"] .zelden-app-account-cluster{
    right:max(.9rem,env(safe-area-inset-right));
    max-width:clamp(10rem,15vw,13rem);
    padding:.38rem .42rem .38rem .62rem;
    gap:.48rem;
  }
  html[data-zelden-account-visible="1"] .zelden-app-account-cluster__tenant,
  html[data-zelden-account-visible="1"] .zelden-app-account-cluster__user{
    max-width:clamp(6.5rem,10vw,9rem);
  }
  html[data-zelden-account-visible="1"] .zelden-pwa-install-chip,
  html[data-zelden-account-visible="1"] .zelden-pwa-install-button.zelden-pwa-install-chip{
    right:calc(max(.85rem,env(safe-area-inset-right)) + clamp(10.5rem,16vw,13.5rem));
    top:max(1.34rem,env(safe-area-inset-top));
    padding:.38rem .54rem;
    min-height:2.12rem;
    font-size:.74rem;
  }
}
@media (min-width:761px) and (max-width:979px){
  html[data-zelden-account-visible="1"] .topbar{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    row-gap:.52rem;
    padding-right:clamp(10rem,20vw,14rem);
  }
  html[data-zelden-account-visible="1"] #mainTabs.tabs{
    grid-column:1 / -1;
    justify-self:center;
    display:inline-flex;
    align-items:center;
    justify-content:flex-start;
    flex-wrap:nowrap;
    gap:.24rem;
    max-width:calc(100vw - 2rem);
    margin:0;
    overflow-x:auto;
    scrollbar-width:none;
  }
  html[data-zelden-account-visible="1"] #mainTabs.tabs::-webkit-scrollbar{display:none;}
  html[data-zelden-account-visible="1"] #mainTabs.tabs .tab{
    flex:0 0 auto;
    min-height:2.55rem;
    padding:.42rem .58rem;
    white-space:nowrap;
  }
  html[data-zelden-account-visible="1"] .zelden-pwa-install-chip,
  html[data-zelden-account-visible="1"] .zelden-pwa-install-button.zelden-pwa-install-chip{
    display:none!important;
  }
}


/* PWA account scroll-flow fix v2.15.05
 * Vertrag: Mandant + Logout und App-Chip verhalten sich wie die Topbar-Navigation.
 * Sie kleben nicht dauerhaft am Viewport, sondern sitzen innerhalb der Topbar
 * und fahren beim Scrollen zusammen mit dem Menue nach oben aus dem Sichtbereich.
 */
body.zelden-pwa-mode .topbar,
html[data-zelden-account-visible="1"] .topbar{
  position:relative!important;
  top:auto!important;
  left:auto!important;
  right:auto!important;
  z-index:30;
  overflow:visible;
}

body.zelden-pwa-mode .zelden-app-account-cluster,
html[data-zelden-account-visible="1"] .zelden-app-account-cluster,
body.zelden-pwa-mode .zelden-pwa-install-chip,
body.zelden-pwa-mode .zelden-pwa-install-button.zelden-pwa-install-chip,
html[data-zelden-account-visible="1"] .zelden-pwa-install-chip,
html[data-zelden-account-visible="1"] .zelden-pwa-install-button.zelden-pwa-install-chip{
  position:absolute!important;
  transform:none;
}

body.zelden-pwa-mode .zelden-app-account-cluster,
html[data-zelden-account-visible="1"] .zelden-app-account-cluster{
  top:50%!important;
  right:max(1rem, env(safe-area-inset-right))!important;
  transform:translateY(-50%)!important;
}

@media (min-width:980px) and (max-width:1280px){
  html[data-zelden-account-visible="1"] .zelden-app-account-cluster{
    top:50%!important;
    right:max(.9rem, env(safe-area-inset-right))!important;
    transform:translateY(-50%)!important;
  }
  html[data-zelden-account-visible="1"] .zelden-pwa-install-chip,
  html[data-zelden-account-visible="1"] .zelden-pwa-install-button.zelden-pwa-install-chip{
    top:50%!important;
    right:calc(max(.85rem, env(safe-area-inset-right)) + clamp(10.5rem,16vw,13.5rem))!important;
    transform:translateY(-50%)!important;
  }
}

@media (min-width:761px) and (max-width:979px){
  html[data-zelden-account-visible="1"] .zelden-app-account-cluster{
    top:1rem!important;
    right:max(.75rem, env(safe-area-inset-right))!important;
    transform:none!important;
  }
}

@media (max-width:760px){
  body.zelden-pwa-mode .zelden-app-account-cluster,
  html[data-zelden-account-visible="1"] .zelden-app-account-cluster{
    position:absolute!important;
    top:.8rem!important;
    right:max(.7rem, env(safe-area-inset-right))!important;
    transform:none!important;
  }
}


/* PWA account topbar DOM anchor fix v2.15.06
 * Account/Logout und App-Chip sind nach dem JS-Fix echte Topbar-Kinder.
 * Dadurch positionieren sie sich innerhalb des Headers und scrollen mit.
 */
html[data-zelden-topbar-account-anchored="1"] .topbar{
  position:relative!important;
  overflow:visible;
}

html[data-zelden-topbar-account-anchored="1"] .topbar > .zelden-app-account-cluster{
  position:absolute!important;
  top:50%!important;
  right:max(1rem, env(safe-area-inset-right))!important;
  transform:translateY(-50%)!important;
  z-index:36;
}

html[data-zelden-topbar-install-anchored="1"] .topbar > .zelden-pwa-install-chip,
html[data-zelden-topbar-install-anchored="1"] .topbar > .zelden-pwa-install-button.zelden-pwa-install-chip{
  position:absolute!important;
  top:50%!important;
  right:calc(max(1rem, env(safe-area-inset-right)) + 13.75rem)!important;
  transform:translateY(-50%)!important;
  z-index:35;
}

html[data-zelden-topbar-account-anchored="1"] body,
html[data-zelden-topbar-install-anchored="1"] body{
  overflow-x:hidden;
}

@media (min-width:980px) and (max-width:1280px){
  html[data-zelden-topbar-account-anchored="1"] .topbar > .zelden-app-account-cluster{
    right:max(.9rem, env(safe-area-inset-right))!important;
  }
  html[data-zelden-topbar-install-anchored="1"] .topbar > .zelden-pwa-install-chip,
  html[data-zelden-topbar-install-anchored="1"] .topbar > .zelden-pwa-install-button.zelden-pwa-install-chip{
    right:calc(max(.9rem, env(safe-area-inset-right)) + clamp(10.5rem,16vw,13.5rem))!important;
  }
}

@media (min-width:761px) and (max-width:979px){
  html[data-zelden-topbar-account-anchored="1"] .topbar > .zelden-app-account-cluster{
    top:1rem!important;
    right:max(.75rem, env(safe-area-inset-right))!important;
    transform:none!important;
  }
  html[data-zelden-topbar-install-anchored="1"] .topbar > .zelden-pwa-install-chip,
  html[data-zelden-topbar-install-anchored="1"] .topbar > .zelden-pwa-install-button.zelden-pwa-install-chip{
    display:none!important;
  }
}

@media (max-width:760px){
  html[data-zelden-topbar-account-anchored="1"] .topbar > .zelden-app-account-cluster{
    top:.8rem!important;
    right:max(.7rem, env(safe-area-inset-right))!important;
    transform:none!important;
  }
  html[data-zelden-topbar-install-anchored="1"] .topbar > .zelden-pwa-install-chip,
  html[data-zelden-topbar-install-anchored="1"] .topbar > .zelden-pwa-install-button.zelden-pwa-install-chip{
    display:none!important;
  }
}


/* Route lazyload transition overlay v2.15.08 */
.zelden-route-transition{
  position:fixed;
  inset:0;
  z-index:12000;
  display:grid;
  place-items:center;
  padding:2rem;
  opacity:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 48%, rgba(20,184,166,.16), transparent 34rem),
    rgba(241,245,249,.34);
  backdrop-filter:blur(0px);
  -webkit-backdrop-filter:blur(0px);
  transition:opacity .12s ease, backdrop-filter .14s ease, -webkit-backdrop-filter .14s ease;
}
.zelden-route-transition[hidden]{display:none!important;}
.zelden-route-transition.is-visible{
  opacity:1;
  pointer-events:none;
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}
.zelden-route-transition__card{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.82rem;
  min-width:min(86vw,18rem);
  padding:1.35rem 1.55rem;
  border:1px solid rgba(148,163,184,.28);
  border-radius:28px;
  background:rgba(255,255,255,.84);
  box-shadow:0 28px 80px rgba(15,23,42,.18), inset 0 1px 0 rgba(255,255,255,.86);
  transform:translateY(8px) scale(.97);
  opacity:.86;
  transition:transform .14s cubic-bezier(.2,.8,.2,1), opacity .12s ease;
}
.zelden-route-transition.is-visible .zelden-route-transition__card{
  transform:translateY(0) scale(1);
  opacity:1;
}
.zelden-route-transition__spinner{
  width:3.2rem;
  height:3.2rem;
  border-radius:999px;
  border:4px solid rgba(20,184,166,.16);
  border-top-color:rgba(13,148,136,.98);
  border-right-color:rgba(15,118,110,.58);
  animation:zeldenRouteSpin .62s linear infinite;
  box-shadow:0 0 0 .55rem rgba(20,184,166,.08);
}
.zelden-route-transition__text{
  color:#0f172a;
  font-size:1rem;
  font-weight:900;
  letter-spacing:-.01em;
  text-align:center;
}
.zelden-route-transition__sub{
  color:#64748b;
  font-size:.82rem;
  font-weight:750;
  text-align:center;
}
@keyframes zeldenRouteSpin{
  to{transform:rotate(360deg);}
}
html[data-zelden-route-loading="1"] body{
  cursor:progress;
}
@media(max-width:760px){
  .zelden-route-transition{padding:1rem;}
  .zelden-route-transition__card{min-width:min(88vw,17rem);border-radius:24px;padding:1.15rem 1.25rem;}
  .zelden-route-transition__spinner{width:2.85rem;height:2.85rem;}
}
@media(prefers-reduced-motion:reduce){
  .zelden-route-transition,
  .zelden-route-transition__card{transition:none!important;}
  .zelden-route-transition__spinner{animation:none!important;}
}


/* Route transition quick fade v2.15.09 */
.zelden-route-transition__sub{display:none;}
.zelden-route-transition__card{padding:1.05rem 1.24rem;gap:.62rem;}
.zelden-route-transition__spinner{width:2.72rem;height:2.72rem;}


/* Route transition click-safe fix v2.15.10 */
.zelden-route-transition,
.zelden-route-transition.is-visible{
  pointer-events:none!important;
}


/* Route transition content loader polish v2.15.11
 * Kein Fullscreen-Blur mehr. Topbar bleibt frei. Nur ein moderner Loader im Content-Bereich.
 */
.zelden-route-transition.zelden-route-transition--content{
  position:fixed!important;
  left:0!important;
  right:0!important;
  top:var(--zelden-route-loader-top, 0px)!important;
  bottom:0!important;
  z-index:70!important;
  display:grid!important;
  place-items:center!important;
  padding:2rem!important;
  opacity:0;
  pointer-events:none!important;
  background:linear-gradient(180deg, rgba(241,245,249,.38), rgba(241,245,249,.18) 58%, rgba(241,245,249,0));
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  transition:opacity .16s ease;
}
.zelden-route-transition.zelden-route-transition--content[hidden]{display:none!important;}
.zelden-route-transition.zelden-route-transition--content.is-visible{
  opacity:1;
  pointer-events:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.zelden-route-transition.zelden-route-transition--content .zelden-route-transition__card{
  min-width:auto;
  padding:.72rem .9rem;
  border:1px solid rgba(148,163,184,.20);
  border-radius:999px;
  background:rgba(255,255,255,.78);
  box-shadow:0 18px 50px rgba(15,23,42,.13), inset 0 1px 0 rgba(255,255,255,.86);
  display:inline-flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:.64rem;
  transform:translateY(6px) scale(.98);
  opacity:.92;
  transition:transform .16s cubic-bezier(.2,.8,.2,1), opacity .16s ease;
}
.zelden-route-transition.zelden-route-transition--content.is-visible .zelden-route-transition__card{
  transform:translateY(0) scale(1);
  opacity:1;
}
.zelden-route-transition.zelden-route-transition--content .zelden-route-transition__spinner{
  width:1.7rem;
  height:1.7rem;
  border-width:3px;
  border-style:solid;
  border-color:rgba(20,184,166,.16);
  border-top-color:rgba(13,148,136,.95);
  border-right-color:rgba(15,118,110,.55);
  box-shadow:none;
  animation:zeldenRouteSpin .64s linear infinite;
}
.zelden-route-transition.zelden-route-transition--content .zelden-route-transition__text{
  color:#0f172a;
  font-size:.86rem;
  line-height:1;
  font-weight:850;
  letter-spacing:-.01em;
}
.zelden-route-transition.zelden-route-transition--content .zelden-route-transition__sub{
  display:none!important;
}
@media(max-width:760px){
  .zelden-route-transition.zelden-route-transition--content{
    padding:1rem!important;
  }
  .zelden-route-transition.zelden-route-transition--content .zelden-route-transition__card{
    padding:.66rem .78rem;
  }
  .zelden-route-transition.zelden-route-transition--content .zelden-route-transition__text{
    font-size:.82rem;
  }
}
@media(prefers-reduced-motion:reduce){
  .zelden-route-transition.zelden-route-transition--content,
  .zelden-route-transition.zelden-route-transition--content .zelden-route-transition__card{
    transition:none!important;
  }
}
