/* Loading is independent of account data and never replaces an existing view. */
html{scrollbar-gutter:stable}
#app-loading,.session-status,.session-skeleton{--session-bg:#101820;--session-paper:#182431;--session-text:#edf3fa;--session-muted:#a7b6c8;--session-line:#34475a;--session-accent:#8bb9e7;color:var(--session-text)}
html[data-color-mode="soft"] :is(#app-loading,.session-status,.session-skeleton){--session-bg:#f3f4f6;--session-paper:#fff;--session-text:#1f2c3b;--session-muted:#5c6d80;--session-line:#dce1e7;--session-accent:#315f8b}
#app-loading.app-loading-screen{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:var(--session-bg);overflow:auto}
#app-loading.app-loading-screen::before{display:none}
#app-loading .boot-card{box-sizing:border-box;width:min(100%,420px);min-width:0;padding:32px;border:1px solid var(--session-line);border-radius:14px;background:var(--session-paper);color:var(--session-text);box-shadow:0 12px 36px #0b1b2d0a}
#app-loading .boot-brand{font-size:21px;font-weight:650;letter-spacing:-.4px;margin-bottom:28px}
#app-loading .boot-brand span{color:var(--session-accent)}
#app-loading .boot-notice{display:flex;align-items:center;gap:12px;font-size:13px;line-height:1.6}
#app-loading .boot-notice p{margin:0;color:var(--session-text)}
#app-loading .boot-description{margin:12px 0 0;font-size:12px;line-height:1.6;color:var(--session-muted)}
#app-loading #boot-retry{margin-top:20px;background:var(--session-paper);color:var(--session-text);border:1px solid var(--session-line)}
#app-loading [hidden],#session-status[hidden],#session-status [hidden]{display:none!important}
.session-spinner{width:16px;height:16px;flex:0 0 16px;border:2px solid var(--session-line);border-top-color:var(--session-accent);border-radius:50%;animation:session-turn .9s linear infinite}
/* Floating notice keeps the content's position and width unchanged. */
#session-status{position:fixed;right:24px;bottom:24px;z-index:55;box-sizing:border-box;width:max-content;max-width:min(420px,calc(100vw - 48px));display:flex;align-items:center;gap:10px;margin:0;padding:12px 16px;background:var(--session-paper);border:1px solid var(--session-line);border-radius:9px;box-shadow:0 6px 24px #0a17241a;font-size:12px;line-height:1.5}
#session-status .session-status-text{flex:1;min-width:0;overflow-wrap:anywhere;color:var(--session-text)}
#session-status button{flex-shrink:0;min-height:38px;color:var(--session-text);background:var(--session-paper);border:1px solid var(--session-line)}
#session-status[data-state="error"]{border-color:#b48a45}
#session-status[data-state="error"] .session-spinner{animation:none;border-color:#b48a45}
.session-skeleton{box-sizing:border-box;min-height:160px;display:flex;align-items:center;justify-content:center;gap:14px;padding:28px;border:1px solid var(--session-line);border-radius:12px;background:var(--session-paper);font-size:13px}
.session-skeleton strong{font-weight:600;color:var(--session-text)}
.session-skeleton p{margin:6px 0 0;color:var(--session-muted);font-size:12px;line-height:1.6}
@keyframes session-turn{to{transform:rotate(360deg)}}
@media(max-width:1099px){#session-status{bottom:calc(88px + env(safe-area-inset-bottom));right:16px;max-width:calc(100vw - 32px)}}
@media(max-width:639px){#app-loading .boot-card{padding:26px}#session-status{font-size:11px;flex-wrap:wrap;gap:8px}#session-status button{min-height:44px}.session-skeleton{justify-content:flex-start;padding:22px}}
@media(prefers-reduced-motion:reduce){.session-spinner{animation:none}}
