/* ── cd-states.css · estados vazios / loading / erro (redesign §2) ──
   4 padrões reusáveis medidos de screen-estados.jsx. Regra de ouro: todo estado
   vazio = ícone + título curto + 1 frase honesta (voz FIN) + 1 ação. Nunca "0"
   sozinho, nunca número inventado. Loading = skeleton (nunca spinner).
   Tokens via var(). Acento por instância via --es-accent (default = primary). */

/* skeleton */
@keyframes cd-skel{0%{background-position:200% 0}100%{background-position:-200% 0}}
.cd-skel{background:linear-gradient(90deg,var(--card) 25%,var(--elevated) 50%,var(--card) 75%);background-size:200% 100%;animation:cd-skel 1.4s linear infinite;border-radius:6px}
@media(prefers-reduced-motion:reduce){.cd-skel{animation:none}}

/* vazio honesto / acionável */
.cd-empty{--es-accent:var(--primary);padding:40px 24px;text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:linear-gradient(180deg,transparent,var(--bg))}
.cd-empty-ico{width:60px;height:60px;border-radius:50%;background:color-mix(in oklab,var(--es-accent) 12%,transparent);color:var(--es-accent);display:inline-flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:14px;box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--es-accent) 40%,transparent)}
.cd-empty-title{font-size:16px;font-weight:700;color:var(--text-strong)}
.cd-empty-body{font-size:12.5px;color:var(--muted);margin:6px auto 16px;line-height:1.6;max-width:400px}
.cd-empty-actions{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:center}

/* erro / Z-API caiu */
.cd-error{padding:24px;text-align:center;border:1px solid rgba(239,68,68,.4);border-radius:var(--radius-lg);background:linear-gradient(135deg,rgba(239,68,68,.08),transparent 70%)}
.cd-error-ico{width:54px;height:54px;border-radius:50%;background:var(--danger-soft);color:var(--danger);display:inline-flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:12px}
.cd-error-title{font-size:15px;font-weight:700;color:var(--text-strong)}
.cd-error-body{font-size:12px;color:var(--muted);margin:6px auto 14px;max-width:340px;line-height:1.6}
.cd-error-actions{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:center}
.cd-error-meta{font-size:10.5px;color:var(--muted);margin-top:12px;font-family:var(--font-mono)}

/* botões self-contained (cd-states não depende do cd-entrada) */
.cd-sbtn{height:38px;padding:0 14px;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:opacity .2s,background .2s,border-color .2s;text-decoration:none}
.cd-sbtn-accent{background:var(--accent);color:#0a0f1f}
.cd-sbtn-accent:hover{opacity:.9}
.cd-sbtn-primary{background:var(--primary);color:#fff}
.cd-sbtn-primary:hover{opacity:.9}
.cd-sbtn-danger{background:var(--danger);color:#fff}
.cd-sbtn-danger:hover{opacity:.9}
.cd-sbtn-ghost{background:transparent;color:var(--text-soft);border:1px solid var(--border)}
.cd-sbtn-ghost:hover{border-color:var(--primary);color:var(--text)}
.cd-sbtn:focus{outline:2px solid var(--primary);outline-offset:2px}
