.pa-button,
.pa-form button,
.pa-form input[type="submit"] {
  display: inline-flex;
  min-height: var(--pa-touch-target);
  align-items: center;
  justify-content: center;
  gap: var(--pa-space-2);
  padding: var(--pa-control-padding-y) var(--pa-control-padding-x);
  border: 1px solid transparent;
  border-radius: var(--pa-radius-sm);
  color: var(--pa-color-surface-raised);
  background: var(--pa-color-primary);
  font: inherit;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--pa-transition-fast), border-color var(--pa-transition-fast), box-shadow var(--pa-transition-fast);
}

.pa-button:hover,
.pa-button:focus-visible { color: var(--pa-color-surface-raised); background: var(--pa-color-primary-hover); }
.pa-button:focus-visible,
.pa-form-control:focus-visible,
.pa-select:focus-visible,
.pa-textarea:focus-visible { outline: 3px solid var(--pa-color-focus-ring); outline-offset: 2px; }
.pa-button-secondary { color: var(--pa-color-heading); border-color: var(--pa-color-border); background: var(--pa-color-surface-raised); }
.pa-button-danger { background: var(--pa-color-danger); }
.pa-button-danger:hover, .pa-button-danger:focus-visible { background: var(--pa-color-danger-hover); }
.pa-button:disabled, .pa-button[aria-disabled="true"] { color: var(--pa-color-disabled); background: var(--pa-color-disabled-surface); cursor: not-allowed; opacity: 1; }

.pa-form-control,
.pa-select,
.pa-textarea {
  width: 100%;
  min-height: var(--pa-control-height);
  padding: var(--pa-control-padding-y) var(--pa-control-padding-x);
  border: 1px solid var(--pa-color-field-border);
  border-radius: var(--pa-radius-sm);
  color: var(--pa-color-text);
  background: var(--pa-color-surface-raised);
  font: inherit;
}
.pa-textarea { min-height: 8rem; resize: vertical; }
.pa-form-control:disabled, .pa-select:disabled, .pa-textarea:disabled { color: var(--pa-color-disabled); background: var(--pa-color-disabled-surface); cursor: not-allowed; }

.pa-card,
.pa-panel {
  padding: var(--pa-space-6);
  border: 1px solid var(--pa-color-border);
  border-radius: var(--pa-radius-md);
  background: var(--pa-color-surface);
}
.pa-card { background: var(--pa-color-surface-raised); box-shadow: var(--pa-shadow-sm); }

.pa-alert { padding: var(--pa-space-3) var(--pa-space-4); border-inline-start: 4px solid var(--pa-color-info); border-radius: var(--pa-radius-sm); background: var(--pa-color-info-soft); }
.pa-alert-success { border-color: var(--pa-color-success); background: var(--pa-color-success-soft); }
.pa-alert-warning { border-color: var(--pa-color-warning); background: var(--pa-color-warning-soft); }
.pa-alert-danger { border-color: var(--pa-color-danger); background: var(--pa-color-danger-soft); }

.pa-badge { display: inline-flex; min-height: 24px; align-items: center; padding: 2px 9px; border-radius: var(--pa-radius-pill); color: var(--pa-color-heading); background: var(--pa-color-primary-soft); font-size: var(--pa-font-size-sm); font-weight: 700; }

.pa-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pa-space-4); }
.pa-stack { display: flex; flex-direction: column; gap: var(--pa-space-4); }
.pa-actions { display: flex; flex-wrap: wrap; gap: var(--pa-space-3); }

@media (min-width: 768px) {
  .pa-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pa-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  .pa-actions > .pa-button { width: 100%; }
}
