.cim-ui-loader { width:22px; height:22px; border:2px solid var(--cim-color-border); border-top-color:var(--cim-color-orange); border-radius:50%; animation:cim-ui-spin .75s linear infinite; }
.cim-ui-loading { position:relative; min-height:80px; }
.cim-ui-loading::after { content:""; position:absolute; inset:0; z-index:5; border-radius:inherit; background:rgba(245,246,247,.58); backdrop-filter:blur(1px); }
@keyframes cim-ui-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .cim-ui-loader { animation-duration:1.8s; } }
.cim-ui-skeleton { position:relative; overflow:hidden; min-height:14px; border-radius:7px; background:#e9ecee; color:transparent!important; }
.cim-ui-skeleton::after { content:""; position:absolute; inset:0; transform:translateX(-100%); background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent); animation:cim-ui-shimmer 1.35s infinite; }
.cim-ui-skeleton--title { width:min(70%,340px); min-height:28px; }
.cim-ui-skeleton--line { width:100%; }
@keyframes cim-ui-shimmer { to { transform:translateX(100%); } }
@media (prefers-reduced-motion: reduce) { .cim-ui-skeleton::after { animation:none; display:none; } }
