:root { --sp-bootstrap-line:#e6e9ef; --sp-bootstrap-shine:rgba(255,255,255,.72); }
*,*::before,*::after { box-sizing:border-box; }
html,body { min-height:100%; margin:0; }
.sp-auth-bootstrap { display:grid; justify-items:center; align-content:center; gap:16px; min-height:100vh; min-height:100dvh; margin:0; padding:24px; background:var(--sp-bg,#f8f9fb); color:var(--sp-text-secondary,#606a79); font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; }
.sp-workspace-bootstrap-brand { display:flex; align-items:center; gap:9px; color:var(--sp-text-strong,#2b303b); font-size:20px; font-weight:600; }
.sp-workspace-bootstrap-brand .sp-brand-symbol { display:block; width:32px; height:32px; object-fit:contain; }
.sp-auth-bootstrap p { margin:0; }
.sp-auth-bootstrap-skeleton { position:relative; display:block; overflow:hidden; width:120px; height:4px; border-radius:4px; background:var(--sp-bootstrap-line); }
.sp-auth-bootstrap-skeleton::after { position:absolute; inset:0; content:""; background:linear-gradient(90deg,transparent,var(--sp-bootstrap-shine),transparent); transform:translateX(-100%); animation:sp-bootstrap-sweep 1.25s ease-in-out infinite; }
.sp-bootstrap-retry { min-height:44px; padding:7px 12px; border:1px solid var(--sp-border,#e6e9ef); border-radius:8px; background:#fff; color:var(--sp-text,#4b5563); font-family:inherit; font-size:13px; font-weight:600; line-height:1.4; cursor:pointer; }
.sp-bootstrap-retry:focus-visible { outline:2px solid var(--sp-focus-ring,#0071e3); outline-offset:2px; }
.sp-bootstrap-failure { display:grid; align-content:center; justify-items:center; min-height:100vh; gap:12px; padding:24px; background:#f8f9fb; color:#606a79; text-align:center; }.sp-bootstrap-failure a{color:#0071e3;}
@keyframes sp-bootstrap-sweep { from { transform:translateX(-100%); } to { transform:translateX(100%); } }
@media (prefers-reduced-motion:reduce) { .sp-auth-bootstrap-skeleton::after { animation:none; } }
.sp-auth-reset-fields { display:grid; gap:16px; }.sp-auth-reset-input-slot { position:relative; display:block; }.sp-auth-reset-input-slot .sp-skeleton-line { position:absolute; inset:10px 12px; width:auto; height:12px; pointer-events:none; }.sp-auth-reset-fields .sp-primary { position:relative; min-height:42px; overflow:hidden; }.sp-auth-reset-fields .sp-primary .sp-skeleton-line { position:absolute; inset:15px 30%; width:40%; height:12px; }
