@keyframes app-spinner-spin{to{transform:rotate(1turn)}}@keyframes app-spinner-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes app-spinner-card-in{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.app-spinner{animation:app-spinner-spin .9s linear infinite;border:2px solid rgba(0,0,0,.08);border-radius:50%;border-top:2px solid var(--primary-color,#3498db);display:inline-block;flex-shrink:0;vertical-align:text-bottom}.app-spinner--sm{border-width:2px;height:1rem;width:1rem}.app-spinner--md{border-width:3px;height:2rem;width:2rem}.app-spinner--lg{border-width:3px;height:3rem;width:3rem}.app-spinner--warning{border-top-color:#ffc107}.app-spinner-block{display:block;margin-left:auto;margin-right:auto}.btn-loading{opacity:.7;pointer-events:none;position:relative}.btn-loading .app-spinner{margin-right:.5rem}html.app-page-loading body{overflow:hidden}html.app-page-loading #loading-spinner{display:flex}#loading-spinner{align-items:center;animation:app-spinner-overlay-in .22s ease-out;background:rgba(15,23,42,.14);color:#334155;cursor:wait;display:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;inset:0;justify-content:center;position:fixed;text-align:center;z-index:10000}#loading-spinner.is-visible{display:flex}.spinner-container{align-items:center;animation:app-spinner-card-in .28s ease-out;background:hsla(0,0%,100%,.97);border:1px solid hsla(0,0%,100%,.8);border-radius:1rem;box-shadow:0 4px 6px rgba(15,23,42,.04),0 16px 40px rgba(15,23,42,.1);display:flex;flex-direction:column;max-width:min(92vw,380px);padding:1.75rem 1.5rem 1.5rem}.spinner-logo-wrap{align-items:center;display:flex;height:76px;justify-content:center;margin-bottom:1.1rem;position:relative;width:76px}.spinner-ring{animation:app-spinner-spin .85s cubic-bezier(.45,.05,.55,.95) infinite;border:2.5px solid rgba(15,23,42,.07);border-radius:50%;border-top:2.5px solid var(--primary-color,#0d9488);inset:0;position:absolute}.spinner-logo-wrap:after{animation:app-spinner-spin 1.35s linear infinite reverse;border-color:transparent transparent rgba(15,23,42,.06) rgba(15,23,42,.06);border-radius:50%;border-style:solid;border-width:2px;content:"";inset:6px;pointer-events:none;position:absolute}.spinner-logo-inner{align-items:center;display:flex;height:52px;justify-content:center;overflow:hidden;position:relative;width:52px;z-index:1}.spinner-logo-inner .app-logo-icon,.spinner-logo-inner img,.spinner-logo-inner svg{max-height:44px;max-width:110px;-o-object-fit:contain;object-fit:contain}.spinner-logo-inner .app-logo-icon{color:var(--primary-color,#0d9488);font-size:1.85rem}.spinner-logo-inner .app-logo-svg{fill:var(--primary-color,#0d9488)}.spinner-logo-inner .app-logo-text{display:none}#loading-spinner-message{color:#334155;font-size:.95rem;font-weight:600;letter-spacing:-.01em;line-height:1.45;margin:0 0 .85rem;max-width:280px}#loading-spinner-message.is-hidden{display:none}.spinner-steps{margin:0;max-width:300px;min-width:0;padding:0;text-align:left;width:100%}.spinner-step{align-items:center;color:rgba(51,65,85,.42);display:flex;font-size:.875rem;gap:.65rem;margin-bottom:.5rem;transition:color .25s ease,opacity .25s ease}.spinner-step:last-child{margin-bottom:0}.spinner-step:before{background:rgba(15,23,42,.12);border-radius:50%;content:"";flex-shrink:0;height:.5rem;transition:background .25s ease,transform .25s ease;width:.5rem}.spinner-step--active{color:#0f172a;font-weight:600}.spinner-step--active:before{background:var(--primary-color,#0d9488);box-shadow:0 0 0 3px rgba(13,148,136,.15);height:.55rem;width:.55rem}.spinner-step--done{color:#64748b}.spinner-step--done:before{align-items:center;background:#ecfdf5;border:1px solid rgba(5,150,105,.2);color:#059669;content:"✓";display:flex;font-size:.58rem;font-weight:700;height:1rem;justify-content:center;line-height:1;width:1rem}
