/* Lock the unstyled hidden workspace until startup completes; never lock the ready workspace. */
html[data-production-shell]:not([data-workspace-ready="true"]){overflow:hidden;overscroll-behavior:none}
html[data-production-shell]:not([data-workspace-ready="true"]) body{width:100%;max-width:100%;height:100dvh;margin:0;overflow:hidden;overscroll-behavior:none}
html[data-production-shell]:not([data-workspace-ready="true"]) .app-shell{position:fixed;inset:0;contain:strict;overflow:hidden;pointer-events:none}
html[data-production-shell] body{visibility:hidden}
/* Public-safe waiting state; authenticated content stays hidden until canonical role setup completes. */
#portalStartupState.portal-startup{visibility:visible;position:fixed;inset:0;z-index:100000;display:grid;place-items:center;box-sizing:border-box;padding:24px;background:#ebe8df;color:#231f20;font-family:"Segoe UI Variable","Segoe UI",Arial,sans-serif}
.portal-startup-card{width:min(480px,100%);padding:28px 24px;text-align:center;box-sizing:border-box;background:#faf8f2;border:1px solid #e0d9c8;border-radius:22px;box-shadow:0 12px 40px #231f2008}
.portal-startup-card img{display:block;margin:0 auto 16px;border-radius:12px}
.portal-startup-card h1{font-size:18px;line-height:1.3;font-weight:700;margin:0 0 10px}
.portal-startup-card p{font-size:12px;line-height:1.6;color:#77716a;margin:0}
.portal-startup-pulse{display:block;width:68px;height:3px;border-radius:3px;background:#ffc000;margin:22px auto 0;animation:portal-startup-breathe 1.6s ease-in-out infinite}
.portal-startup-card button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:18px;padding:10px 18px;border:1px solid #d7ad36;border-radius:12px;background:#ffc000;color:#231f20;font:600 11px/1.4 "Segoe UI Variable","Segoe UI",Arial,sans-serif;cursor:pointer}
.portal-startup-card button[hidden]{display:none}.portal-startup.is-delayed .portal-startup-pulse{display:none}
@keyframes portal-startup-breathe{50%{opacity:.35;transform:scaleX(.6)}}
@media(prefers-reduced-motion:reduce){.portal-startup-pulse{animation:none}}
@media(max-width:650px){.portal-startup-card{padding:24px 20px}.portal-startup-card h1{font-size:18px}}
