/* Loading screens of the admin console, styled like the client area splash (ClientArea.Web src/index.html, #global-loader).
   The console shows several loaders in a row: the static one from keycloak.v2/admin/index.ftl, then React spinners while
   keycloak-js checks the session and the app loads its providers (whoami, realms, server info). All of them are rendered
   before the page layout (.pf-v5-c-page) exists, so one rule covers them: #app has a spinner and no layout yet.
   Spinners inside the layout are not touched. Without :has() support or with changed markup the stock loaders come back. */
#app:has(.pf-v5-c-spinner):not(:has(.pf-v5-c-page)){position:fixed;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#fff!important}
#app:has(.pf-v5-c-spinner):not(:has(.pf-v5-c-page))>*{display:none!important}
/* Logo */
#app:has(.pf-v5-c-spinner):not(:has(.pf-v5-c-page))::before{content:"";width:200px;height:63px;background:url(../img/logo_large.svg) center/contain no-repeat;animation:bm-pulse 1.6s ease-in-out infinite}
/* Top bar: 3px track with the glow + moving stripe */
#app:has(.pf-v5-c-spinner):not(:has(.pf-v5-c-page))::after{content:"";position:fixed;top:0;left:0;right:0;height:3px;box-shadow:0 1px 4px rgba(253,103,42,.5)}
body:has(>#app .pf-v5-c-spinner):not(:has(.pf-v5-c-page))::after{content:"";position:fixed;top:0;left:0;width:100%;height:3px;background:#fd672a;transform-origin:left;animation:bm-bar 1.2s cubic-bezier(.65,.05,.36,1) infinite}
@keyframes bm-pulse{0%,100%{opacity:1}50%{opacity:.85}}
@keyframes bm-bar{0%{transform:translateX(-100%) scaleX(.4)}50%{transform:translateX(20%) scaleX(.6)}100%{transform:translateX(100%) scaleX(.5)}}
@media (prefers-reduced-motion:reduce){
  #app:has(.pf-v5-c-spinner):not(:has(.pf-v5-c-page))::before{animation:none}
  body:has(>#app .pf-v5-c-spinner):not(:has(.pf-v5-c-page))::after{animation:none;transform:translateX(0) scaleX(.35)}
}
