/* IHUZE shared loading animations (spinner, skeleton cards, page overlay). */
.ihu-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:30px 14px;color:var(--ihu-text-muted,var(--muted,#64748B));font-size:.86rem;font-weight:600;text-align:center;}
.ihu-loader.compact{flex-direction:row;padding:14px;gap:10px;justify-content:flex-start;}
.ihu-spin{position:relative;width:42px;height:42px;flex:none;}
.ihu-loader.compact .ihu-spin{width:22px;height:22px;}
.ihu-spin::before,.ihu-spin::after{content:"";position:absolute;inset:0;border-radius:50%;}
.ihu-spin::before{border:4px solid rgba(100,116,139,.2);}
.ihu-spin::after{border:4px solid transparent;border-top-color:var(--ihu-primary,var(--accent,#0B5FFF));border-right-color:#13A36A;animation:ihuSpin .85s cubic-bezier(.55,.1,.45,.9) infinite;}
.ihu-loader.compact .ihu-spin::before,.ihu-loader.compact .ihu-spin::after{border-width:3px;}
.ihu-dots{display:inline-flex;gap:4px;margin-left:2px;vertical-align:middle;}
.ihu-dots i{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.35;animation:ihuDot 1.1s ease-in-out infinite;}
.ihu-dots i:nth-child(2){animation-delay:.15s;} .ihu-dots i:nth-child(3){animation-delay:.3s;}
.ihu-skel-list{display:grid;gap:12px;padding:4px 0;}
.ihu-skel{position:relative;overflow:hidden;border-radius:16px;background:rgba(148,163,184,.16);min-height:84px;}
.ihu-skel::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);animation:ihuShimmer 1.3s infinite;}
[data-theme="dark"] .ihu-skel::after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);}
.ihu-skel.tall{min-height:150px;}
.ihu-page-loader{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--ihu-bg,var(--bg,#fff));transition:opacity .25s ease;}
[data-theme="dark"] .ihu-page-loader{background:var(--ihu-bg,var(--bg,#0F172A));}
.ihu-page-loader.out{opacity:0;pointer-events:none;}
.ihu-btn-busy{position:relative;pointer-events:none;opacity:.85;}
.ihu-btn-busy::after{content:"";display:inline-block;width:14px;height:14px;margin-left:8px;border-radius:50%;border:2.5px solid currentColor;border-right-color:transparent;vertical-align:-2px;animation:ihuSpin .7s linear infinite;}
@keyframes ihuSpin{to{transform:rotate(360deg);}}
@keyframes ihuDot{0%,80%,100%{transform:translateY(0);opacity:.35;}40%{transform:translateY(-4px);opacity:1;}}
@keyframes ihuShimmer{to{transform:translateX(100%);}}
@media (prefers-reduced-motion:reduce){.ihu-spin::after{animation-duration:2.4s;}.ihu-dots i,.ihu-skel::after{animation:none;}}
