/* Shared, opt-in UI primitives. They never alter hidden state or application behaviour. */
.soam-font-unify .sl-ui-card {
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--soam-line);
  border-radius: var(--soam-radius-card);
  background: var(--soam-surface);
}
.soam-font-unify .sl-ui-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: var(--soam-radius-pill);
  font-size: 11px;
  font-weight: 500;
  white-space: nowrap;
}
.soam-font-unify .sl-ui-status-badge::before {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  content: "";
}
.soam-font-unify .sl-ui-status-badge--notice { background: var(--soam-amber-soft); color: #76500e; }
.soam-font-unify .sl-ui-status-badge--success { background: var(--soam-green-soft); color: #145a3b; }
.soam-font-unify .sl-ui-status-badge--danger { background: var(--soam-red-soft); color: #7a2c18; }
.soam-font-unify .sl-ui-condition-notice {
  border-left: 4px solid var(--soam-amber);
  background: var(--soam-amber-soft);
  color: var(--soam-ink-2);
}
.soam-font-unify .sl-ui-condition-notice__title { color: var(--soam-ink); font-weight: 700; }
.soam-font-unify .sl-ui-error-state {
  border: 1px solid #e6b7ac;
  border-radius: var(--soam-radius-card);
  background: var(--soam-red-soft);
  color: #7a2c18;
}
.soam-font-unify .sl-ui-empty-state {
  border: 1px dashed var(--soam-line);
  border-radius: var(--soam-radius-card);
  color: var(--soam-muted);
}
@media (prefers-reduced-motion: reduce) {
  .soam-font-unify .sl-ui-card,
  .soam-font-unify .sl-ui-status-badge,
  .soam-font-unify .sl-button,
  .soam-font-unify .btn,
  .soam-font-unify .btnPrimary {
    transition-duration: .01ms;
    animation-duration: .01ms;
    animation-iteration-count: 1;
  }
}
