/* Shared launch surface. Always light, independent of the saved app theme. */
html.lifeos-starting,html.lifeos-starting body,
html.lifeos-startup-recovery,html.lifeos-startup-recovery body{background:#f6f7fa!important;color:#303844!important}
html.lifeos-starting :is(#shell,#auth-gate){visibility:hidden!important;pointer-events:none!important}
#lifeos-startup[hidden]{display:none!important}
#lifeos-startup{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;overflow:hidden;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));background:#f6f7fa;color:#303844;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;isolation:isolate;opacity:1;transition:opacity 220ms ease}
#lifeos-startup::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 25% 28%,rgba(201,217,229,.32),transparent 48%),radial-gradient(ellipse at 74% 69%,rgba(216,212,230,.24),transparent 48%),radial-gradient(ellipse at 51% 45%,#fff,transparent 66%)}
#lifeos-startup.lifeos-startup-leaving{opacity:0;pointer-events:none}
.lifeos-launch-center{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;transform:translateY(-18px)}
.lifeos-launch-orbit{position:relative;display:grid;place-items:center;width:256px;height:256px;margin-bottom:2px}
.lifeos-launch-orbit::before,.lifeos-launch-orbit::after{content:"";position:absolute;border:1px solid rgba(113,139,156,.12);border-radius:50%;pointer-events:none}
.lifeos-launch-orbit::before{inset:0;border-top-color:rgba(125,155,174,.34);border-right-color:rgba(193,174,209,.26);animation:lifeos-orbit 18s linear infinite}
.lifeos-launch-orbit::after{inset:28px;border-bottom-color:rgba(125,155,174,.26);animation:lifeos-orbit 24s linear infinite reverse}
.lifeos-launch-halo{position:absolute;inset:56px;border-radius:50%;background:radial-gradient(circle,rgba(187,211,222,.35),rgba(229,228,241,.2) 55%,transparent 72%);animation:lifeos-breathe 4.2s ease-in-out infinite}
.lifeos-launch-mark{position:relative;display:grid;place-items:center;width:84px;height:84px;border:1px solid rgba(255,255,255,.94);border-radius:25px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(247,248,251,.91));box-shadow:0 18px 44px -20px rgba(66,93,117,.24),0 2px 5px rgba(66,93,117,.035),inset 0 1px 0 #fff;color:#455b68;font:400 46px/1 Georgia,"Times New Roman",serif;letter-spacing:-.04em}
.lifeos-launch-title{margin:0!important;color:#303844!important;font:600 29px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;letter-spacing:-.045em!important}
.lifeos-launch-progress{display:block;width:46px;height:3px;margin-top:28px;overflow:hidden;border-radius:3px;background:#e2e6eb}
.lifeos-launch-progress::after{content:"";display:block;width:23px;height:100%;border-radius:inherit;background:#879eae;animation:lifeos-progress 1.8s ease-in-out infinite}
.lifeos-launch-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes lifeos-orbit{to{transform:rotate(360deg)}}
@keyframes lifeos-breathe{0%,100%{opacity:.62;transform:scale(.94)}50%{opacity:1;transform:scale(1.04)}}
@keyframes lifeos-progress{0%,100%{transform:translateX(-4px)}50%{transform:translateX(27px)}}
@media(max-width:400px){.lifeos-launch-orbit{width:232px;height:232px}.lifeos-launch-title{font-size:27px!important}}
@media(prefers-reduced-motion:reduce){#lifeos-startup{transition:none}.lifeos-launch-orbit::before,.lifeos-launch-orbit::after,.lifeos-launch-halo,.lifeos-launch-progress::after{animation:none}.lifeos-launch-progress::after{width:100%;opacity:.55}}
/* Recovery is explicit and usable; a failed boot never leaves a permanent loader. */
html.lifeos-startup-recovery body :is(#main,#content,#topbar,#auth-gate){background:#f6f7fa!important;color:#303844!important}
html.lifeos-startup-recovery body #auth-gate .auth-card{background:#fff!important;color:#303844!important;border-color:#e4e8ee!important}
html.lifeos-startup-recovery body #auth-gate :is(h1,.brand-name,.auth-sub){color:#303844!important}
.lifeos-recovery-card{width:min(100%,520px);margin:clamp(20px,8vh,80px) auto;padding:28px;border:1px solid #e4e8ee;border-radius:24px;background:#fff;color:#303844;box-shadow:0 20px 60px -40px rgba(66,93,117,.3);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.lifeos-recovery-mark{margin-bottom:22px;color:#455b68;font:36px/1 Georgia,serif}
.lifeos-recovery-card h2{margin:0 0 12px;color:#303844!important;font:600 23px/1.25 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;letter-spacing:-.025em}
.lifeos-recovery-card p{color:#64707e!important;font-size:14px;line-height:1.6;margin-bottom:22px}
.lifeos-recovery-card button{min-height:44px;padding:11px 18px;border:0;border-radius:12px;background:#425d70;color:#fff;font:600 14px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.lifeos-recovery-card button:focus-visible{outline:3px solid #92adbd;outline-offset:4px}
.lifeos-recovery-card details{margin-top:24px;color:#64707e;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.lifeos-recovery-card summary{cursor:pointer;min-height:32px}
.lifeos-recovery-card details p{font-size:12px;margin:8px 0 0}
