/* DAC Loading System - global progress bar + button spinner */
#dac-progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,#2563eb,#7c3aed,#2563eb);background-size:200% 100%;z-index:99999;transition:width .25s ease;box-shadow:0 0 10px rgba(37,99,235,.55);opacity:0;animation:dac-shimmer 1.6s linear infinite}
@keyframes dac-shimmer{0%{background-position:0% 0%}100%{background-position:200% 0%}}
.dac-btn-loading{position:relative;pointer-events:none;color:transparent!important;transition:transform .15s ease}
.dac-btn-loading::after{content:"";position:absolute;top:50%;left:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;color:#fff;animation:dac-spin .7s linear infinite}
.dac-btn-loading.dark::after{color:#111}
@keyframes dac-spin{to{transform:rotate(360deg)}}
.dac-btn-ripple{position:relative;overflow:hidden}
.dac-btn-ripple .ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);transform:scale(0);animation:dac-ripple .6s ease-out;pointer-events:none}
@keyframes dac-ripple{to{transform:scale(4);opacity:0}}
.dac-fade-out{opacity:0;transition:opacity .2s ease}
