/* Only plugin controls are styled. Cards and list layouts belong to the theme. */
.scwi-controls { text-align: center; margin: 1.5rem 0; }
.scwi-controls .scwi-more { cursor: pointer; padding: .7em 1.5em; }
.scwi-controls .scwi-status { display: block; margin-top: .5rem; }
.scwi-controls [hidden] { display: none !important; }

/* Loading indicators: colors inherit from the theme via currentColor. */
.scwi-loader { display:flex; justify-content:center; align-items:center; min-height:48px; color:var(--scwi-loader-color,currentColor); }
.scwi-loader[hidden] { display:none !important; }
.scwi-visually-hidden { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.scwi-spinner { width:28px; height:28px; border:3px solid currentColor; border-right-color:transparent; border-radius:50%; animation:scwi-spin .8s linear infinite; }
.scwi-dots,.scwi-bars { display:flex; align-items:center; justify-content:center; gap:7px; }
.scwi-dots i { width:10px; height:10px; border-radius:50%; background:currentColor; animation:scwi-bounce 1s ease-in-out infinite; }
.scwi-dots i:nth-child(2),.scwi-bars i:nth-child(2) { animation-delay:.12s; }
.scwi-dots i:nth-child(3),.scwi-bars i:nth-child(3) { animation-delay:.24s; }
.scwi-pulse { width:30px; height:30px; border:3px solid currentColor; border-radius:50%; animation:scwi-pulse 1.3s ease-out infinite; }
.scwi-bars i { width:5px; height:12px; border-radius:3px; background:currentColor; animation:scwi-wave .85s ease-in-out infinite; }
.scwi-bars i:nth-child(4) { animation-delay:.36s; }
.scwi-skeletons { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; width:min(100%,600px); }
.scwi-skeletons i { height:110px; border-radius:6px; background:linear-gradient(100deg,transparent 20%,currentColor 50%,transparent 80%); background-color:currentColor; background-size:200% 100%; opacity:.22; animation:scwi-shimmer 1.4s linear infinite; }
@keyframes scwi-spin { to { transform:rotate(360deg); } }
@keyframes scwi-bounce { 0%,70%,100% { transform:translateY(0); opacity:.45; } 35% { transform:translateY(-9px); opacity:1; } }
@keyframes scwi-pulse { 0% { transform:scale(.6); opacity:1; } 100% { transform:scale(1.6); opacity:0; } }
@keyframes scwi-wave { 0%,100% { height:10px; } 50% { height:30px; } }
@keyframes scwi-shimmer { to { background-position-x:-200%; } }
@media (prefers-reduced-motion:reduce) { .scwi-loader * { animation:none !important; } }
