.button{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);font-family:var(--font-body);font-weight:var(--weight-semibold);cursor:pointer;transition:background-color var(--transition-fast), box-shadow var(--transition-fast);white-space:nowrap;line-height:var(--line-height-tight);border:none;display:inline-flex}.button--sm{min-height:36px;padding:var(--space-2) var(--space-4);font-size:var(--text-small)}.button--md{min-height:48px;padding:var(--space-3) var(--space-6);font-size:var(--text-body)}.button--lg{min-height:56px;padding:var(--space-4) var(--space-8);font-size:var(--text-body)}.button--primary{background-color:var(--color-primary);color:var(--color-text-on-primary)}.button--primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.button--primary:active:not(:disabled){background-color:#c02733}.button--secondary{color:var(--color-primary);border:1.5px solid var(--color-primary);background-color:#0000}.button--secondary:hover:not(:disabled){background-color:var(--color-primary-light)}.button--accent{background-color:var(--color-accent);color:var(--color-text-on-primary)}.button--accent:hover:not(:disabled){background-color:var(--color-accent-hover)}.button--ghost{color:var(--color-text-secondary);background-color:#0000}.button--ghost:hover:not(:disabled){background-color:var(--color-disabled)}.button--danger{background-color:var(--color-error);color:var(--color-text-on-primary)}.button--danger:hover:not(:disabled){background-color:#a82226}.button:disabled{opacity:.5;cursor:not-allowed}.button--full-width{width:100%}.button--loading{pointer-events:none}.button__icon{align-items:center;display:inline-flex}
