/* Keep the console shell in place; only the work area waits for its data. */
html.identity-loading #main{opacity:0;pointer-events:none}
html.identity-loading #sidebar .nav-badge{visibility:hidden}
#main{transition:opacity 160ms ease-out}
#identity-loading{position:fixed;top:48px;left:0;right:0;height:2px;z-index:2147483000;overflow:hidden;pointer-events:none;background:transparent}
#identity-loading::after,html.identity-navigating::after{content:"";display:block;height:2px;width:35%;background:linear-gradient(90deg,transparent,var(--accent,#8B5CF6),var(--cyan,#00D4FF),transparent);animation:identity-sweep 1.1s ease-in-out infinite}
html.identity-navigating::after{position:fixed;top:48px;left:0;z-index:2147483000;pointer-events:none}
@keyframes identity-sweep{from{transform:translateX(-100%)}to{transform:translateX(390%)}}
/* Supporting browsers retain the old document while the next one renders. */
@view-transition{navigation:auto}
#topbar{view-transition-name:identity-topbar}
#sidebar{view-transition-name:identity-sidebar}
#tool-rail{view-transition-name:identity-rail}
::view-transition-group(*){animation-duration:160ms}
::view-transition-old(identity-topbar),::view-transition-new(identity-topbar),::view-transition-old(identity-sidebar),::view-transition-new(identity-sidebar),::view-transition-old(identity-rail),::view-transition-new(identity-rail){animation:none;mix-blend-mode:normal}
.identity-load-error{padding:32px;color:var(--tx);font:14px var(--font)}
@media(prefers-reduced-motion:reduce){#main{transition:none}#identity-loading::after,html.identity-navigating::after{animation:none;transform:none;width:100%;background:var(--accent,#8B5CF6)}@view-transition{navigation:none}}
