/* Componentes sin JS ni dependencias. El estado siempre conserva su texto. */
.ad-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px;
  padding: 12px 24px; border: 0; border-radius: var(--ad-pill); background: var(--ad-action); color: white;
  font: 650 14px/1.5 var(--ad-sans); text-decoration: none; cursor: pointer; }
.ad-button:focus-visible, .ad-carousel:focus-visible { outline: 3px solid var(--ad-violet); outline-offset: 4px; }
.ad-card { min-width: 0; padding: 28px; border: 1px solid var(--ad-line); border-radius: var(--ad-radius);
  background: var(--ad-paper); color: var(--ad-ink); box-shadow: var(--ad-shadow); }
.ad-status { display: inline-flex; align-items: center; width: fit-content; padding: 5px 11px; border-radius: var(--ad-pill);
  font: 650 12px/1.5 var(--ad-sans); background: #edf0f5; color: #454959; }
.ad-status[data-state="ready"] { background: var(--ad-ready); color: white; }
.ad-status[data-state="review"] { background: var(--ad-review); color: var(--ad-review-ink); }
.ad-status[data-state="held"] { background: var(--ad-held); color: white; }
.ad-status[data-state="scheduled"] { background: var(--ad-scheduled); color: white; }
.ad-status[data-state="published"] { background: var(--ad-published); color: white; }
.ad-carousel { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
  scrollbar-width: thin; scrollbar-color: #b9a5cf transparent; padding: 12px 2px 22px; }
.ad-carousel > * { flex: 0 0 auto; scroll-snap-align: center; }
@media (prefers-reduced-motion: reduce) { .ad-carousel { scroll-behavior: auto; } }
