.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);font-family:var(--font-family-base);font-weight:500;font-size:var(--font-size-base);line-height:var(--line-height-base);border:1px solid rgba(0,0,0,0);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);text-decoration:none;white-space:nowrap}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background-color:var(--color-accent);color:#fff}.btn--primary:hover:not(:disabled){background-color:var(--color-accent-hover);color:#fff}.btn--primary:focus-visible{color:#fff}.btn--secondary{background-color:var(--color-bg-elevated);color:var(--color-text);border-color:var(--color-border)}.btn--secondary:hover:not(:disabled){background-color:var(--color-bg-secondary);border-color:var(--color-border-hover);color:var(--color-text)}.btn--secondary:focus-visible{color:var(--color-text)}.btn--ghost{background-color:rgba(0,0,0,0);color:var(--color-text)}.btn--ghost:hover:not(:disabled){background-color:var(--color-bg-elevated);color:var(--color-text)}.btn--ghost:focus-visible{color:var(--color-text)}.btn--link{background-color:rgba(0,0,0,0);color:var(--color-accent);padding:0;text-decoration:underline}.btn--link:hover:not(:disabled){color:var(--color-accent-hover)}.btn--sm{padding:var(--space-xs) var(--space-md);font-size:var(--font-size-sm)}.btn--md{padding:var(--space-sm) var(--space-lg);font-size:var(--font-size-base)}.btn--lg{padding:var(--space-md) var(--space-xl);font-size:var(--font-size-lg)}