/* Feature-scoped loading UI for /cleaners and /jobs only. */
.ccs-async-progress{
    margin:14px 0 18px;
    padding:13px 15px;
    border:1px solid rgba(15,23,42,.09);
    border-radius:14px;
    background:rgba(255,255,255,.92);
    box-shadow:0 8px 26px rgba(15,23,42,.05);
}
.ccs-async-progress[hidden]{display:none!important}
.ccs-async-progress-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:9px}
.ccs-async-progress-copy{display:flex;align-items:center;gap:9px;min-width:0;color:#334155;font-size:13px;line-height:1.35}
.ccs-async-progress-copy strong{color:#0f172a;font-size:13px}
.ccs-async-pulse{width:8px;height:8px;border-radius:999px;background:#19a974;box-shadow:0 0 0 5px rgba(25,169,116,.11);flex:0 0 auto}
.ccs-async-percent{font-size:12px;font-weight:800;color:#64748b;min-width:34px;text-align:right}
.ccs-async-track{height:5px;overflow:hidden;border-radius:999px;background:#e8edf1}
.ccs-async-bar{height:100%;width:10%;border-radius:inherit;background:linear-gradient(90deg,#0d8d6c,#21b98d);transition:width .35s ease}
.ccs-async-cleaner-items{display:contents}
.ccs-job-feed-slot{display:contents}
.ccs-async-results-note[hidden]{display:none!important}
.ccs-async-soft-status{margin-top:8px;font-size:12px;color:#64748b}
@media (max-width:640px){
    .ccs-async-progress{padding:12px;margin:10px 0 15px;border-radius:12px}
    .ccs-async-progress-head{align-items:flex-start}
    .ccs-async-progress-copy{font-size:12px}
}
@media (prefers-reduced-motion:reduce){.ccs-async-bar{transition:none}}

.ccs-async-progress.is-soft-failed .ccs-async-pulse{opacity:.5;box-shadow:none}
.ccs-async-progress.is-soft-failed .ccs-async-bar{opacity:.55}
