.button{justify-content:center;align-items:center;gap:var(--spacing-sm);border-radius:var(--radius-md);font-family:var(--font-family);font-weight:var(--font-weight-semibold);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);border:2px solid #0000;line-height:1;display:inline-flex}.button:active:not(:disabled){transform:scale(.97)}.button:disabled{opacity:.5;cursor:not-allowed}.button--sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);border-radius:var(--radius-sm)}.button--md{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-base)}.button--lg{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-md);border-radius:var(--radius-lg)}.button--primary{background-color:var(--color-primary);color:var(--color-text-inverse)}.button--primary:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:var(--shadow-md), 0 0 20px #96203833}.button--primary:focus-visible{box-shadow:0 0 0 3px var(--color-primary-lighter)}.button--secondary{background-color:var(--button-secondary-bg);color:var(--button-secondary-text);border-color:var(--button-secondary-border)}.button--secondary:hover:not(:disabled){background-color:var(--button-secondary-hover-bg);box-shadow:var(--shadow-md)}.button--outline{color:var(--color-primary);border-color:var(--color-primary);background-color:#0000}.button--outline:hover:not(:disabled){background-color:var(--color-primary-bg)}.button--ghost{color:var(--color-text-secondary);background-color:#0000}.button--ghost:hover:not(:disabled){background-color:var(--color-surface-hover);color:var(--color-text)}.button--danger{background-color:var(--color-error);color:var(--color-text-inverse)}.button--danger:hover:not(:disabled){background-color:color-mix(in srgb, var(--color-error) 85%, #000);box-shadow:var(--shadow-md)}.button--full-width{width:100%}.button--loading{position:relative;color:#0000!important}.button__spinner{border-radius:var(--radius-full);width:1.25em;height:1.25em;color:var(--color-text-inverse);border:2px solid;border-right-color:#0000;animation:.6s linear infinite spin;position:absolute}.button--outline .button__spinner,.button--ghost .button__spinner{color:var(--color-primary)}.button__icon{flex-shrink:0;align-items:center;display:inline-flex}.button__icon svg{width:1.125em;height:1.125em}
