.btn[disabled],
.btn[aria-disabled="true"] {
  cursor: not-allowed;
  filter: grayscale(0.15);
  opacity: 0.65;
}

.btn {
  min-height: 2.875rem;
}

.btn--primary {
  background: linear-gradient(135deg, var(--color-brand), var(--color-brand-strong));
  border-color: color-mix(in srgb, var(--color-brand), #000 10%);
  color: var(--color-text-inverse);
}

.card {
  border-radius: var(--radius-lg);
}

.page-header {
  display: grid;
  gap: var(--space-sm);
}

.section-header {
  display: grid;
  gap: var(--space-sm);
}

.form fieldset {
  border: 0;
  display: grid;
  gap: var(--space-md);
  margin: 0;
  padding: 0;
}

.input,
.select,
.textarea {
  width: 100%;
}

.input:disabled,
.select:disabled,
.textarea:disabled,
fieldset:disabled .input,
fieldset:disabled .select,
fieldset:disabled .textarea {
  background:
    repeating-linear-gradient(
      135deg,
      color-mix(in srgb, var(--surface-2), transparent 8%) 0,
      color-mix(in srgb, var(--surface-2), transparent 8%) 8px,
      color-mix(in srgb, var(--surface), transparent 4%) 8px,
      color-mix(in srgb, var(--surface), transparent 4%) 16px
    );
  color: var(--muted);
  cursor: not-allowed;
}

.nav__placeholder {
  color: var(--muted);
  cursor: not-allowed;
  display: inline-flex;
  padding: 0.5rem 0.75rem;
  white-space: nowrap;
}

.nav__links a {
  border-radius: 999px;
  padding: 0.5rem 0.75rem;
  white-space: nowrap;
}

.nav__links a[aria-current="page"],
.nav__mobile_panel a[aria-current="page"] {
  background: color-mix(in srgb, var(--brand), transparent 86%);
  color: var(--text);
  font-weight: 700;
  text-decoration: none;
}

.empty-state,
.loading-state,
.error-state {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
}

.loading-state {
  color: var(--color-text-muted);
}

.empty-state {
  background: color-mix(in srgb, var(--color-brand), #fff 96%);
  border-style: dashed;
}

.error-state {
  border-color: color-mix(in srgb, var(--color-error), var(--color-border) 45%);
}

.badge,
.workspace-status-badge {
  border-radius: var(--radius-pill);
}

.alert[role="alert"],
.error-state[role="alert"] {
  scroll-margin-top: var(--space-lg);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 1ms !important;
    scroll-behavior: auto !important;
    transition-duration: 1ms !important;
  }
}
