.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-lg);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);line-height:1;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;overflow:hidden}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-accent);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--color-bg-secondary);color:var(--color-text-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-tertiary)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--color-bg-secondary);color:var(--color-text-primary)}.btn-outline{background:transparent;color:var(--color-accent);border:1.5px solid var(--color-accent)}.btn-outline:hover:not(:disabled){background:var(--color-accent-light)}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);border-radius:var(--radius-md)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-md);border-radius:var(--radius-xl)}.btn-icon{padding:var(--space-2);border-radius:var(--radius-full);width:40px;height:40px}.btn-icon.btn-sm{width:32px;height:32px}.btn-icon.btn-lg{width:48px;height:48px}.btn-full{width:100%}