:root{--loader-primary:#5B2BE0;--loader-secondary:#2563EB;--loader-accent:#FE9305;--loader-bg:#fff;--loader-text:#0F172A;--loader-text-muted:#64748B;--loader-ring-track:rgba(91,43,224,.08);--loader-bar-track:rgba(91,43,224,.12);--loader-glow:rgba(91,43,224,.14)}
@media (prefers-color-scheme:dark){:root{--loader-primary:#818CF8;--loader-secondary:#6366F1;--loader-accent:#FBA026;--loader-bg:#0F172A;--loader-text:#F8FAFC;--loader-text-muted:#94A3B8;--loader-ring-track:rgba(129,140,248,.12);--loader-bar-track:rgba(129,140,248,.16);--loader-glow:rgba(99,102,241,.22)}}
[data-theme="dark"]{--loader-primary:#818CF8;--loader-secondary:#6366F1;--loader-accent:#FBA026;--loader-bg:#0F172A;--loader-text:#F8FAFC;--loader-text-muted:#94A3B8;--loader-ring-track:rgba(129,140,248,.12);--loader-bar-track:rgba(129,140,248,.16);--loader-glow:rgba(99,102,241,.22)}
.app-loader{display:flex;align-items:center;justify-content:center;width:100%;padding:env(safe-area-inset-top,20px) env(safe-area-inset-right,20px) env(safe-area-inset-bottom,20px) env(safe-area-inset-left,20px);contain:layout paint;box-sizing:border-box;animation:appLdIn .2s cubic-bezier(.16,1,.3,1) forwards}
.app-loader-fullscreen{position:fixed;inset:0;z-index:99999;background-color:var(--loader-bg);background-image:radial-gradient(circle at 50% 40%,var(--loader-glow) 0,transparent 65%)}
.app-loader-exit{animation:appLdOut .3s cubic-bezier(.4,0,1,1) forwards!important;pointer-events:none}
body:has(.app-loader-fullscreen) :is(.whatsapp-float,.chat-assistant-btn,[class*="whatsapp"],[class*="chatbot"]){opacity:0!important;pointer-events:none!important}
.app-loader-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:clamp(280px,90vw,420px)}
.app-loader-mark-wrap{position:relative;width:clamp(100px,16vw,136px);height:clamp(100px,16vw,136px);display:flex;align-items:center;justify-content:center}
.app-loader-glow{position:absolute;inset:10%;border-radius:50%;background:radial-gradient(circle,var(--loader-glow) 0,transparent 70%);filter:blur(12px);pointer-events:none}
.app-loader-svg-ring{position:absolute;inset:0;width:100%;height:100%;will-change:transform;animation:appLdSpin 2.4s linear infinite}
.app-loader-track-circle{fill:none;stroke:var(--loader-ring-track);stroke-width:2.2}
.app-loader-animated-circle{fill:none;stroke:url(#loaderGradientStroke);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:200 88;transform-origin:center}
.app-loader-logo-disc{position:relative;width:58%;height:58%;border-radius:50%;background:var(--loader-bg);box-shadow:0 4px 14px rgba(0,0,0,.06);display:flex;align-items:center;justify-content:center;padding:8px;box-sizing:border-box;will-change:transform;animation:appLdBreathe 2.2s ease-in-out infinite}
.app-loader-logo-img{width:100%;height:100%;object-fit:contain}
.app-loader-title{margin:clamp(20px,3.5vw,26px) 0 6px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);font-weight:700;letter-spacing:-.015em;color:var(--loader-text);line-height:1.3}
.app-loader-subtext-track{height:20px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;width:100%}
.app-loader-subtext{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:clamp(.8125rem,1.8vw,.875rem);font-weight:500;letter-spacing:-.005em;color:var(--loader-text-muted);line-height:1.35;transition:opacity .28s ease,transform .28s ease;will-change:transform,opacity}
.app-loader-subtext.is-entering{opacity:0;transform:translateY(5px)}
.app-loader-subtext.is-active{opacity:1;transform:translateY(0)}
.app-loader-subtext.is-leaving{opacity:0;transform:translateY(-5px)}
.app-loader-bar-wrap{margin-top:clamp(16px,3vw,20px);width:clamp(120px,30vw,144px);height:2.5px;background-color:var(--loader-bar-track);border-radius:99px;position:relative;overflow:hidden;contain:strict}
.app-loader-bar-fill{position:absolute;top:0;left:0;bottom:0;width:45%;border-radius:99px;background:linear-gradient(90deg,transparent 0,var(--loader-primary) 40%,var(--loader-secondary) 80%,transparent 100%);will-change:transform;animation:appLdShim 1.6s cubic-bezier(.4,0,.2,1) infinite}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;white-space:nowrap}
@keyframes appLdSpin{to{transform:rotate(360deg)}}
@keyframes appLdBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.055)}}
@keyframes appLdShim{0%{transform:translateX(-100%)}100%{transform:translateX(330%)}}
@keyframes appLdIn{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}
@keyframes appLdOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.985)}}
@media (prefers-reduced-motion:reduce){.app-loader,.app-loader-svg-ring,.app-loader-logo-disc,.app-loader-bar-fill,.app-loader-subtext{animation:none!important;transition:none!important;transform:none!important}.app-loader-bar-fill{width:100%;opacity:.85}}
